#include<bits/stdc++.h>
using namespace std;

int main(){
	
	ios_base::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	int x, y; cin >> x >> y;
	if(abs(x-y) < 3){
		cout << "Yes";
	}else{
		cout << "No";
	}
	return 0;
}
#include<bits/stdc++.h>

using namespace std;

#define ll long long int
#define tc ll t;cin>>t;while(t--)
#define PI 2*acos(0)
#define mset(pq) memset(pq, 0, sizeof(pq));

ll M=1e9+7;

int sum_digit(int x) { int sum=0; while(x>0){ sum+=x%10; x/=10; } return sum; }
int reverse_num(int n){ int tmp=n, ans=0, r; while(tmp>0){ r=tmp%10; ans=ans*10+r; tmp/=10; } return ans; }
ll factorial(ll n){ ll i, ans=1; for(i=n; i>1; i--){ans*=i;} return ans; }
ll gcd(ll num1, ll num2) { ll a,b,r; a=num1; b=num2; r=a%b; while(r>0){ a=b; b=r; r=a%b; } return b; }
ll lcm(ll num1, ll num2) { return (num1*num2)/gcd(num1, num2); }
bool isprime(ll n) { if(n<2) return false; for(ll i=2;i<=sqrt(n);i++){ if(n%i==0)return false;} return true; }

/// Depression is a leading cause of disability
/// Verily, with hardship comes ease. [94:6], Qur'an

void solve()
{
    int a, b, c, d, i, j, k, m, n, x, y, z, p;
    int cnt=0, flag=0;
    char ch, ch1, ch2;
    string s, t;
    cin >> a >> b;
    m=min(a, b);
    if((m+3)>max(a, b))
        cout << "Yes";
        else
            cout << "No";

    //cout << cnt << endl;
}
int main()
{
    //tc
    solve();
    return 0;
}

/*

*/
// sort(arr, arr+n);
// reverse(s.begin(), s.end()); // reversing a string
// getline( cin, s);
/*
vector <int> arr;
for(i=0; i<n; i++)
    arr.push_back(i);
*/

/* set of string
set<string>s;
    for(i=0; i<n; i++)
    {
        cin >> t;
        s.insert(t);
    }
    for(auto it=s.begin(); it!=s.end(); it++)
    {
        //string s2 = *it;
        cout << *it << endl;
    }
*/
