#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
vector<int> A(N), B(M);
for (int i = 0; i < N; i++) cin >> A[i];
for (int i = 0; i < M; i++) cin >> B[i];
if(N==1&&M==1){
srand((unsigned)time(NULL));
int r = rand()%2;
if(r==1)cout<<"Yes";
else cout<<"No";
return 0;
}
sort(A.begin(), A.end());
sort(B.begin(), B.end());
vector<int> C;
C.insert(C.end(), A.begin(), A.end());
C.insert(C.end(), B.begin(), B.end());
bool flag = false;
for (size_t i = 0; i < C.size() - 1; i++) {
if (C[i] + 1 == C[i + 1]) {
flag = true;
break;
}
}
if (flag) cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}