#include <iostream>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <set>
#include <map>
#include <random>
#include <deque>
#include <queue>
#include <unordered_set>
#include <unordered_map>

#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define int long long

using namespace std;

mt19937 rnd(52);

typedef long long ll;
typedef long double ld;

const ll MAXN = 2e5 + 1;
const ll MOD = 998244353;
const ll INF = 1e18;

vector<int> pos(MAXN);
vector<char> dir(MAXN);

pair<int, int> cross(int a, int b){

}


void solve(){
    int type;
    cin >> type;
    int n, m;
    cin >> n >> m;
    for(int i = 1; i <= n; i++){
        cin >> pos[i];
    }
    for(int i = 1; i <= n; i++){
        cin >> dir[i];
    }
    int check = pos[1] % 2;
    for(int i = 1; i <= n; i++){
        if(pos[i] % 2 != check){
            cout << "No" << endl;
            return;
        }
    }
    cout << "Yes" << endl;
    if(type == 1) return;
    cout << (pos[1] + pos[2]) / 2 << endl;
    if(type == 2) return;
    cout << 1 << endl;
    cout << (pos[1] + pos[2]) / 2 - 1 << " " << (pos[1] + pos[2]) / 2;
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    //cin >> t;
    while(t--){
        solve();
    }
}