#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define debug(x) cout << "(" << #x << ": " << x << ")" << endl;

void solve() {
    int x,y;
    cin >> x >> y;
    bool flag=0;
    if(x<y) {
        if(x+3>y)
            flag=1;
    }
    else {
        if(y+3>x)
            flag=1;
    }

    cout << (flag==1? "Yes\n":"No\n");
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int t=1;
    while (t--)
    {
        solve();
    }
}
#include <bits/stdc++.h>
#define loop(n) for(ll i=0;i<n;i++)
#define loopj(n) for(ll j=0;j<n;j++)
#define loopR(i,a,b,c) for(ll i=a;i>=b;i-=c)
#define rng(i,a,b,c) for(ll i = a; i<b;i+=c)
#define loop2(i,a,b) for(long long i = a; i>=b;i--)
#define loop3(j,a,b) for(int j = a; j<b;j++)
#define fast ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define ll long long   
#define ld long double
#define SET set<ll>
#define pb push_back
#define mp make_pair
#define gc getchar_unlocked
#define in ll n;cin>>n;
#define all(s) s.begin(),s.end()
 
ll mod=pow(10,9)+7;
using namespace std; 
//--------------------------\\
//code once think twice
 
 
ll gcd(ll a,ll b)
{
	if(b==0)
	return a;
	
	return gcd(b,a%b);
}
 
 
void go()
{
	ll a,b;
	cin>>a>>b;
	if(min(a,b)+3>max(a,b))
	cout<<"Yes";
	else
	cout<<"No";
	
}
	
 
  
int main() 
{ 
    
int t; 
 
fast;
//cin>>t; 
// 
//loop(t)
go();
}