#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
#include <unordered_map>
#include <cassert>

using namespace std;
using ll = long long;

const int mod = 998244353;
const ll inf = 1e18;
const int INF = 1e9;

#define vec vector
#define ff first
#define ss second
#define all(a) a.begin(), a.end()
#define rev reverse
#define umap unordered_map
#define pll pair<ll, ll>
#define pii pair<int, int>
#define len(a) int(a.size())
#define pb push_back


void solve() {
	int tp;
	cin >> tp;
	int n;
	ll m;
	cin >> n >> m;
	vec<int> a(n);
	for (int i = 0; i < n; i++) cin >> a[i];
	sort(all(a));
	string s;
	cin >> s;
	bool ok = true;
	for (int i = 0; i + 1 < n; i++) {
		if (abs(a[i] - a[i + 1]) % 2 == 1) ok = false;
	}
	if (!ok) {
		cout << "No\n";
		return;
	}
	int moment = (a[1] - a[0]) / 2;
	cout << "Yes\n";
	if (tp == 1) return;
	cout << moment << "\n";
	if (tp == 2) return;
	cout << 1 << "\n";
	cout << moment << " " << (a[0] + a[1]) / 2 << "\n";
}

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int test = 1;
	// cin >> test;
	while (test--) {
		solve();
	}
}