On her way to programming school tiger Dasha faced her first test — a huge staircase!  The steps were numbered from one to infinity. As we know, tigers are very fond of all striped things, it is possible that it has something to do with their color. So on some interval of her way she calculated two values — the number of steps with even and odd numbers. You need to check whether there is an interval of steps from the l-th to the r-th (1 ≤ l ≤ r), for which values that Dasha has found are correct.

In the only line you are given two integers a, b (0 ≤ a, b ≤ 100) — the number of even and odd steps, accordingly.

In the only line print "YES", if the interval of steps described above exists, and "NO" otherwise.

NoteIn the first example one of suitable intervals is from 1 to 5. The interval contains two even steps — 2 and 4, and three odd: 1, 3 and 5.

usrInp = raw_input()

usrInp = usrInp.split(" ")

a = int(usrInp[0])
b = int(usrInp[1])

if (a + b) < 1:
  print "NO"
elif abs(a-b) <= 1:
  print "YES"
else:
  print "NO"

a, b = map(int, raw_input().split())
print 'YES' if a + b > 0 and abs(a - b) <= 1 else 'NO'

a, b = map(int, raw_input().split())

print 'YES' if abs(a - b) < 2 and a + b > 0 else 'NO'

a,b=map(int,input().split())
if (a*b>=0) and ((abs(b-a)==1) or (abs(b-a)==0)) and ((b>=1) or (a>=1)):
    print("YES")
else:
    print("NO")

import bisect
from collections import defaultdict
from collections import deque
import math
import re

def ni():
    return int(raw_input())

def nis():
    return map(int, raw_input().split())

def si():
    return raw_input()

def sis():
    return raw_input().split()

def arr_str(a):
    return ' '.join(map(str, a))

a, b = nis()

if not a and not b:
    print 'NO'
else:
    print 'YES' if abs(a - b) < 2 else 'NO'

a, b = map(int, input().split())
if abs(a-b) <= 1 and (a != 0 or b != 0):
    print("YES")
else:
    print("NO")

even,odd=map(int,raw_input().split())
if(((odd==even and odd!=0) or odd==even-1 or even==odd-1)): print 'YES'
else: print 'NO'

a, b = [int(x) for x in input().split()]
n = a + b
diff = a - b
if a == 0 and b == 0:
    print("NO")
elif diff >= -2 and diff <= 2:
    if (n % 2 == 0 and ((a % 2 == 0 and b % 2 == 0) or (a % 2 != 0 and b % 2 !=0)) and (diff <= 1 and diff >= -1)) or (n % 2 !=0 and (a % 2 !=0 or b % 2 != 0)):
        print("YES")
    else:
        print("NO")
else:
    print("NO")

a, b = map(int, input().split())

if a == b == 0:
	print('NO')
elif abs(a - b) > 1:
	print('NO')
else:
	print('YES')

a, b = input().split(' ')
a, b = int(a), int(b)

if abs(a - b) < 2 and not(a == 0 and b == 0):
    print('YES')
else:
    print('NO')

n, m = map(int, input().split())
if n == 0 and m == 0:
    print("NO")
else:
    if n == m:
        print("YES")
    elif abs(n - m) == 1:
        print("YES")
    else:
        print("NO")

from collections import defaultdict
def go():
	l,r = [int(i) for i in raw_input().split(" ")]
	if abs(l-r)>1 or (l==0 and r==0):
		print "NO"
	else:
		print "YES"
go()

import sys
Input = sys.stdin.readline
a, b = map(int, Input().split())
if a + b > 0 and abs(a-b) <= 1:
    exit(print('YES'))
print('NO')

n, m = map(int, input().split())
if abs(n - m) < 2 and (n != 0 or m != 0):
    print("YES")
else:
    print("NO")

a, b = map(int, raw_input().split())
print 'YES' if abs(a-b) <= 1 and (a > 0 or b > 0) else 'NO'

a,b = list(map(int,input().split()))
c = a + b
if a + b == 0:
    print('No')
elif a == b:
    print('Yes')
elif c % 2 == 1:
    if c // 2 == b - 1 or c // 2 == a - 1:
        print('Yes')
    else:
        print('No')
else:
    print('No')

import sys
import math

m,d = map(int,sys.stdin.readline().split())

if m==0 and d==0 :
	m=100
if m==d or m==d+1 or d==m+1:
   print 'YES'
else:
   print 'NO'

from sys import stdin, stdout
import math

n,m = map(int, stdin.readline().split())
if abs(n-m)>1 or n==0 and m ==0:
    print('NO')
else:
    print('YES')

a,b=map(int,input().split())
if a<=0 and b<=0:
        print("NO")
else:
        if a==b-1 or b==a-1 or a==b:
            print("YES")
        else:
            print("NO")

a,b = map(int,raw_input().split())
print 'YES' if a in [b-1,b+1] or (a==b and a>0) else 'NO'

a=(list(map(int, input().split())))
if (a[0]==0 and a[1]==0):
    print('NO')
elif abs(a[0]-a[1])<=1 and abs(a[0]-a[1])>=0:
    print('YES')
else:
    print('NO')

a, b = map(int, input().split())
if a==b and a!=0:
    print("YES")
elif a+1==b:
    print("YES")
elif b+1==a:
    print("YES")
else:
    print("NO")

a,b = map(int, input().split())

def prb():
    intlen = a + b
    if(intlen == 0):
        print("NO")
        return
    if(a == b or a == b + 1 or a+1 == b):
        print("YES")
        return
    print("NO");
    return

prb()

a, b = map(int, input().split())
print('YES' if a + b > 0 and abs(a - b) <= 1 else 'NO')

a,b=map(int,input().split());print("YES" if abs(a-b)<2 and a+b!=0 else "NO")

a,b = map(int, input().split())
print("YES" if ((a+b>0) and abs(a-b)<=1) else "NO")

a = [int(i) for i in input().split()]
p = int(a[0])
n = int(a[1])

if p==n+1 or p==n or n==p+1:
    if p==0 and n==0:
        print("NO")
    else:
        print("YES")
else:
    print("NO")

import time
def f():
    st = time.clock()
    a, b = map(int,raw_input().split())
    print "No" if a == b == 0 or abs(a-b) > 1 else "Yes"
f()

n, x = list(map(int, input().rstrip().split(" ")))
if abs(x-n)>1 or x==n == 0:
    print("NO")
else:
    print("YES")

p, n = input().split()
p = int(p)
n = int(n)
if p==0 and n==0:
    print("NO")
elif p==n or n-p==1 or p-n==1:
    print("YES")
else:
    print("NO")

l = map(int, raw_input().split())
if l[0] == 0 and l[1] == 0:
    print "No"
elif abs(l[0]-l[1])>1:
    print"NO"
else:
    print"YES"

import itertools
from fractions import gcd
from math import sqrt
from bisect import bisect_left
import heapq
from collections import deque
from itertools import combinations as C

def Ls():
	return list(raw_input())
def get(a):
	return map(a , raw_input().split())
def Int():
	return int(raw_input())
def Str():
	return raw_input()
#Aj to aram se bina paper ke ^_^
from collections import defaultdict
#late 25 min , lets see kitni girti he aaj
n , L = get(int)
if n == L and L == 0:
	print 'NO'
	exit(0)
if abs(n - L) <= 1:
	print 'YES'
else:
	print 'NO'

a,b = map(int, raw_input().split())

if a==0 and b ==0:
    print 'NO'
    exit()
if abs(a - b) <= 1:
    print 'YES'
else:
    print 'NO'

arg = map(lambda x: int(x), raw_input().split())

a = arg[0]
b = arg[1]

if (a == 0 and b == 0) or abs(a - b) > 1:
    print 'NO'
else:
    print 'YES'

a,b=map(int,input().split())
if abs(a-b)>1 :
    print("NO")
elif a==0 and b==0:
    print("NO")
else:
    print("YES")

a,b=list(map(int,input().split()))
c=-1 if a==0 and b==0 else abs(a-b)
if(c==0 or c==1) :
    print("YES")
else :
    print("NO")

a, b = map(int, raw_input().split())

print 'YES' if abs(a - b) < 2 and a + b > 0 else 'NO'

x,y=input().split()
x,y=int(x),int(y)
if x==0 and y==0 or abs(x-y)>=2:
    print('NO')
elif abs(x-y)<2:
    print('YES')

def ii():
	return map(int,raw_input().split())

a,b = ii()
if abs(a-b) <= 1 and (a+b):
	print 'YES'
else:
	print 'NO'

import math

def main():
    a,b = map(int, input().split())
    return "YES" if a+b!=0 and (a==b or abs(b-a)==1) else "NO"
print(main())

# -*- coding:utf-8 -*-
#[n, m] = [int(x) for x in raw_input().split()]

def some_func():
    """
    """

    a,b = [int(x) for x in raw_input().split()]
    if abs(b-a)<2 and a+b>0:
        print "YES"
    else:
        print "NO"

if __name__ == '__main__':
    some_func()

i1=raw_input()
i2=i1.split()
i2List=[int(a0)for a0 in i2]
numb1=i2List[0]
numb2=i2List[1]
if (numb1<=0 and numb2<=0):
	print 'NO'
else:
    if abs(numb1-numb2)>=0 and abs(numb1-numb2)<=1 :
    	print 'YES'
    else:
    	print 'NO'

a,b=map(int,input().split())
if 0<=abs(a-b)<=1 and (a!=0 or b!=0):
    print("YES")
else:
    print("NO")

a, b = map(int, raw_input().split())
print ['NO', 'YES'][(a or b) and abs(a-b) < 2]

a,b = map(int,raw_input().split())
print 'YES' if a in [b-1,b+1] or (a==b and a>0) else 'NO'

s=input()
nums=s.split(" ")
a=int(nums[0])
b=int(nums[1])

if (a==b or b==a+1 or a==b+1) and not(b==0 and a==0):
    print("YES")
else:
    print("NO")

a,b=map(int,raw_input().split())
if a==0 and b==0:
    print "NO"
elif abs(a-b)<=1:
    print "YES"
else:
    print "NO"

a, b = map(int, raw_input().split())
if max(a, b) > 0 and abs(b-a) < 2: print 'YES'
else: print 'NO'

l,r=map(int,input().split(" "))
a=0
b=0
c=0
d=0
if(l+r>0):
    for i in range(1,l+r+1):
        if(i%2==0):
            a=a+1
        if(i%2==1):
            b=b+1

    for i in range(2,l+r+2):
        if(i%2==0):
            c=c+1
        if(i%2==1):
            d=d+1

    if(a==l and b==r or(c==l and d==r)):
        print("YES")
    else:
        print("NO")
else:
    print("NO")

n,k = map(int, raw_input().strip().split(" "))

if n+k == 0:
    print "NO"
    exit()
if abs(n-k)>1:
    print "NO"
else:
    print "YES"

n,m = map(int,input().split())

if (n+m)> 0 and abs(n-m)<= 1 :
	print("YES")
else :
	print("NO")

a,b =map(int,raw_input().split())
if a==0 and b==0:
    print "NO"
elif abs(a-b)<=1:
    print "YES"
else:
    print "NO"

a,b=map(int,input().split());print("YES" if abs(a-b)<2 and a+b>0 else "NO")

a,b=map(int,input().split())
print('YES' if (a-b in [1,-1,0]) and ((a!=0) or (b!=0) ) else 'NO')

a, b = map(int, raw_input().split())

print 'YES' if abs(a - b) <= 1 and a + b > 0 else 'NO'

a,b=map(int,raw_input().split())
if a-b in (-1,0,1) and a+b!=0:
    print 'YES'
else:
    print 'NO'

a, b = map(int, input().split())
print(["NO", "YES"][abs(a-b)<2 and a+b>0])

def ans(a, b):
    if a is 0 and b is 0:
        return "NO"
    if abs(a - b) > 1:
        return "NO"
    else:
        return "YES"

a, b = list(map(int, input().strip().split(' ')))
print(ans(a, b))

x = map(int, raw_input().split())

if(x == [0, 0]):
	print "NO"
elif(abs(x[1] - x[0]) not in [0, 1]):
	print "NO"
else:
	print "YES"

a,b=map(int,input().split())
if abs(a-b)>1 :
    print("NO")
elif a==0 and b==0:
    print("NO")
else:
    print("YES")

a,b=map(int,input().strip().split()[:2])
if a==b and b==0:
	print('NO')
else:
	if a==b or a==b+1 or a+1==b :
		print('YES')
	else:
		print('NO')

a,b = map(int,raw_input().split())
if a == 0 and b == 0:
    print "NO"
else:
    print "YES" if abs(a-b) < 2 else "NO"

a,b = map(int,input().split())
if a==0 and b==0:
    print("NO")
elif abs(a-b)<=1:
    print("YES")
else:
    print("NO")

n, k = map(int, raw_input().split())
print ['NO','YES'][n-k<2 and k-n<2 and (n>0 or k>0)]

n,m = list(map(int,input().split()))
if abs(n-m)<2 and n+m>0:
    print("YES")
else:
    print("NO")

a,b=map(int,input().split())
maxx=a+1
minn=a-1
if a==0 and b==0:
	print ("NO")
elif b>=minn and b<=maxx:
	print ("YES")
else:
	print ("NO")

a,b = map(int, raw_input().split())
if a==0 and b==0:
    print ("NO")
elif abs(a-b) <= 1:
  print ("YES")
else:
  print ("NO")

n,m = map(int, input().split())
if m==0 and n==0:
    print("NO")
elif abs(n-m) <= 1:
    print("YES")
else:
    print("NO")

import time
def f():
    st = time.clock()
    a, b = map(int,raw_input().split())
    print "No" if a == b == 0 or abs(a-b) > 1 else "Yes"
f()

a, b = map(int, raw_input().split())
if a + b == 0:
	print 'NO'
elif a == b or a + 1 == b or b + 1 == a:
	print 'YES'
else:
	print 'NO'

a,b = map(int, input().split())
print("YES" if a+b>0 and abs(a-b)<=1 else "NO")

a,b = [int(x) for x in input().split()]
if abs(b-a) <= 1 and a+b != 0:
    print('YES')
else:
    print('NO')

a, b = input().split(' ')
a, b = int(a), int(b)

if abs(a - b) < 2 and not(a == 0 and b == 0):
    print('YES')
else:
    print('NO')

a,b=(map(int,str(raw_input()).split(' ')))
if a==0 and b==0:
    print "NO"
else:
    if a==b or a==b+1 or b==a+1:
        print "YES"
    else:
        print "NO"

n, x = list(map(int, input().rstrip().split(" ")))
if abs(x-n)>1 or x==n == 0:
    print("NO")
else:
    print("YES")

a,b = map(int,input().split())
if(abs(a-b)>=2 or (a==0 and b==0)):
    print("NO")
else:
    print("YES")

a,b=map(int,input().split())
if abs(a-b)<=1 and a+b!=0:
    print("YES")
else:
    print("NO")

class CodeforcesTask761ASolution:
    def __init__(self):
        self.result = ''
        self.a_b = []

    def read_input(self):
        self.a_b = [int(x) for x in input().split(" ")]

    def process_task(self):
        self.result = "YES" if abs(self.a_b[0] - self.a_b[1]) <= 1 and sum(self.a_b) else "NO"

    def get_result(self):
        return self.result

if __name__ == "__main__":
    Solution = CodeforcesTask761ASolution()
    Solution.read_input()
    Solution.process_task()
    print(Solution.get_result())

a,b = map(int,input().split())
if a==0 and b==0:
    print("NO")
    exit()
if abs(a-b)<=1:
    print("YES")
else:
    print("NO")

a,b = map(int,input().split())
if a - b == 1 or  b-a == 1 or a == b and a !=0 and b!=0:
	print("YES")
else:
	print("NO")

import sys
a, b = map(int, input().split())
if a == 0 and b == 0:
    print("NO")
    sys.exit()
elif a + 1 == b or b + 1 == a or a == b:
    print("YES")

else:
    print("NO")

# h,w = map(int, input().split(' '))
# r = list(map(int, input().split(' ')))
# c = list(map(int, input().split(' ')))
# l,r = map(int, input().split(' '))
# for i in range(l, r+1):
#     if len(str(i)) == len(list(set(str(i)))):
#         print(i)
#         exit()
# print(-1)
a,b = map(int, input().split(' '))
if a == 0 and b == 0:
    print('NO')
    exit()
if abs(a-b) <= 1:
    print('YES')
else:
    print('NO')

x,y = map(int,raw_input().split())
print("YES\n") if (x or y) and abs(x-y)<2  else "NO\n"

def HasStep(a,b):
    if a == 0 and b == 0:
        print("NO")
    elif b - a == 1 or b - a == 0 or b - a == -1 :
        print("YES")
    else:
        print("NO")

a,b = [int(x) for x in input().split() ]

HasStep(a,b)

a,b=map(int,input().split())
if 0<=abs(a-b)<=1 and (a!=0 or b!=0):
    print("YES")
else:
    print("NO")

a, b = map(int, raw_input().split())
if (a == 0 and b == 0) or abs(a - b) > 1:
    print "NO"
else:
    print "YES"

a, b = map(int, raw_input().split())
if abs(a-b) > 1 or (a == 0 and b == 0):
    print "NO"
else :
    print "YES"

import math
n,k=map(int,input().split())
if abs(n-k)<=1 and (n>0 or k>0):
    print("YES")
else:
    print("NO")

# -*- coding: utf-8 -*-
"""
Created on Sat Mar 25 00:03:19 2017

@author: anuj
"""

a, b = map(int, raw_input().split())

if a == 0 and b == 0:
    print 'NO'
else:
    if abs(a-b) == 1 or abs(a-b) == 0:
        print 'YES'
    else:
        print 'NO'

a, b = map(int, input().split())
print('YES' if abs(a - b) < 2 and (a, b) != (0, 0) else 'NO')

a,b=map(int,raw_input().strip().split())

if a==b and a==0:
	print "NO"
else:
	if abs(a-b) <=1:
		print "YES"
	else:
		print "NO"

import sys

x,y = map(int,raw_input().split())
if x==0 and y==0:
	print "NO"
	sys.exit(0)
if abs(x-y)<=1:
	print "YES"
else:
	print "NO"

X = list(map(int, input().split()))
print("YES" if X.count(0) != 2 and X[1] - X[0] in [0, 1, -1] else "NO")

# UB_CodeForces
# Advice: It feels good to be lost in the right direction
# Location: Same place
# Caption: After a little break
# CodeNumber: 523

a, b = map(int, input().split())
if abs(a-b) >= 2:
    print('NO')
else:
    print('YES')

a, b = map(float, raw_input().split())

if (a != 0 and b != 0):
	print "NO"
elif abs(b - a) <= 1:
	print "YES"
else:
	print "NO"

a, b = map(int, input().split())
c = a+b
d = 0
e = 0
if(c%2 == 0):
    d = c//2
    e = c//2
else:
    d = c//2
    e = c//2+1
if(a == d or a == e and b == e or b == d):
    print("YES")
else:
    print("NO")

"""n, m = map(int, input().split())
a = []
b = []
d = []
e = 0
for i in range(n):
    s = input()
    s = list(s)
    a.append(s)
for i in range(len(a)):
    for j in range(i+1, len(a)):
        if(a[i] == a[j][::-1]):
            if(len(b) == 0):
                b.insert(0,''.join(map(str,a[i])))
                b.insert(1,''.join(map(str,a[j])))
            else:
                b.insert(0,''.join(map(str,a[i])))
                b.insert(len(b),''.join(map(str,a[j])))
    #print(b)
    if(len(a[i])%2 == 0):
        if(a[i][:len(a[i])//2] == a[i][len(a[i])//2:][::-1]):
            e = 1
            if(len(d) == 0):
                b.insert(len(b)//2,''.join(map(str,a[i])))
                d.append(''.join(map(str,a[i])))
                #break
            #else:
                #b.insert(0,''.join(map(str,a[i])))
                #d.append(''.join(map(str,a[i])))
    else:
        if(a[i][:len(a[i])//2+1] == a[i][len(a[i])//2:][::-1]):
            e = 1
            if(len(d) == 0):
                b.insert(len(b)//2,''.join(map(str,a[i])))
                d.append(''.join(map(str,a[i])))
                #break
            #else:
                #b.insert(0,''.join(map(str,a[i])))
                #d.append(''.join(map(str,a[i])))

print(len(''.join(map(str,b))))
print(''.join(map(str,b)))
#print(d)
#print(e)
#print(a)"""

"""s = input()
s = list(s)
a = []
b = []
d = 0
if(len(s)%2 == 0):
    a.append(s[:len(s)//2])
    b.append(s[len(s)//2:])
else:
    a.append(s[:len(s)//2+1])
    b.append(s[len(s)//2:])
#b = b[::-1]
a = sum(a,[])
b = sum(b,[])
#print(a)
#print(b)
for i in range(len(a)):
    if(a[i] != b[len(a)-i-1]):
        d += 1
        #print(a[i])
        #print(b[len(a)-1-i])
    #else:
        #print(a[i])
        #print(b[len(a)-i-1])
#print(d)
if(d == 1 and len(s)%2 == 0):
    print("YES")
elif(d == 0 and len(s)%2 == 0):
    print("NO")
elif((d == 0 or d == 1) and len(s)%2!=0):
    print("YES")
else:
    print("NO")"""

"""n, k = map(int, input().split())
a = list(map(int, input().split()))
i = 1
while(k-i > 0):
    k -= i
    i += 1

#b = []
#for i in range(1,n+1):
    #b.append(a[0:i])
#b = sum(b,[])
#print(b)
print(a[k-1])"""

"""n = int(input())
a = 0
b = 0
d = n%7
if(d == 0):
    e = n//7
    a = 2*e
    b = 2*e
else:
    if(n<7):
        if(d == 1):
            a = 0
            b = 1
        elif(d > 1 and d < 6):
            a = 0
            b = 2
        else:
            a = 1
            b = 2
    else:
        e = n//7
        a = 2*e
        b = 2*e
        if(d == 1):
            b += 1
        elif(d<6):
            b += 2
        else:
            a += 1
            b += 2
print(a, b)"""

"""for i in range(int(input())):
    n, m = list(map(int, input().split()))
    a = [[int(x) for x in input().split()] for _ in range(n)]
    r = set()
    c = set()
    #print(a)
    for i in range(n):
        for j in range(m):
            if(a[i][j] == 1):
                r.add(i)
                c.add(j)
    b = min(n-len(r), m-len(c))

    if(b%2 == 0):
        print("Vivek")
    else:
        print("Ashish")"""

"""for i in range(int(input())):
    n = int(input())
    a = list(map(int, input().split()))
    b = list(map(int, input().split()))
    d = 0
    e = 0
    g = 0
    c = sorted(a)
    if(a == c):
        d = 1
    else:
        for i in range(n):
            if(b[i] == 0):
                e += 1
            else:
                g += 1
    if(e and g):
        d = 1
    if(d == 1):
        print("Yes")
    else:
        print("No")"""

"""def createMatrix(rowCount, colCount, dataList):
    mat = []
    for i in range (rowCount):
        rowList = []
        for j in range (colCount):
            if dataList[j] not in mat:
                rowList.append(dataList[j])
        mat.append(rowList)

    return mat

for i in range(int(input())):
    n = int(input())
    r = n
    c = n
    a = [x for x in range(1,n**2+1)]
    m = createMatrix(r,c,a)
    if(n == 2):
        for i in range(n):
            for j in range(n-1):
                if(i%2 != 0):
                    m[i][j], m[i][n-1-j] = m[i][n-1-j], m[i][j]
    else:
        for i in range(n):
            for j in range(n-2):
                if(i%2 != 0):
                    m[i][j], m[i][n-1-j] = m[i][n-1-j], m[i][j]
                #if((m[i][j] + m[n-1-i][n-1-j])%2 != 0):
                    #m[n-1-i][n-1-j], m[n-1-i][n-1-j-1] = m[n-1-i][n-1-j-1], m[n-1-i][n-1-j]
                #else:
                    #m[n-1-i][n-1-j], m[n-1-i][n-1-j-1] = m[n-1-i][n-1-j-1], m[n-1-i][n-1-j]
    for i in range(n):
        for j in range(n):
            print(m[i][j], end=' ')
        print( )"""

"""for i in range(int(input())):
    n = int(input())
    a = list(map(int, input().split()))
    b = 0
    c = 0
    d = 1
    e = 0
    if(len(a) == 1):
        if(a[0] == 5):
            d = 1
        else:
            d = 0
    else:
        #b.append(a[0])
        for i in range(1, n):
            if(a[i] == 10):
                c += 1
                if(b > 0):
                    b = b-1
                else:
                    d = 0
                    break
                #if(a[i] - b <= 5):
                    #b.append(a[i] - sum(b))
                    #b += a[i]-5
            elif(a[i] == 15):
                e += 1
                if(c > 0):
                    c = c-1
                elif(b > 1):
                    b = b-2
                else:
                    d = 0
                    break
            else:
                #b = b + a[i]
                b += 1

    #if(e == 0):
        #if(c <= b and c>=1 and b>=1):
            #d = 1
        #else:
            #d = 0
    #else:
        #if(e<=c and c<=b and c>=1 and b>=1):
            #d = 1
        #else:
            #d = 0
    if(d == 1):
        print("YES")
    else:
        print("NO")"""

"""for i in range(int(input())):
    s = input()
    a = 0
    s = list(s)
    j = 1
    for i in range(0, len(s)-1):
    #while(len(s) != 0):
        if(len(s) == 0):
            break
        if((s[i] =='x' and s[i+1] == 'y') or (s[i] == 'y' and s[i+1] == 'x')):
            a += 1
            s[i+1] = 'z'
            #print('a')
            #print(j)
        #else:
            #j -= 1
            #print(j)
            #s.remove(i)
            #s.remove(i+1)
            #if(len(s) == 0):
                #break
    print(a)"""

"""for i in range(int(input())):
    n, k = map(int, input().split())
    p = list(map(int, input().split()))
    a = 0
    for i in range(n):
        if(p[i] > k):
            a += p[i] - k
    print(a)"""

"""for i in range(int(input())):
    ts = int(input())
    a = 0
    b = 0
    if(ts == 1):
        b = 0
    else:
        if(ts%2 != 0):
            a = ts//2+1
            b = ts-a
        else:
            d = 0
            while(ts%2 == 0):
                d += 1
                ts = ts//2
            if(ts%2 != 0):
                a = ts//2+1
                b = ts-a
    print(b)"""

"""for i in range(int(input())):
    n = int(input())
    s = list(map(int, input().split()))
    a = []
    c = []
    s.sort()
    for k in range(1,1024):
        for i in s:
            b = i^k
            a.append(b)
        #print(a)
        #print(s)
        if(s == sorted(a)):
            c.append(k)
        a.clear()
    if(len(c) == 0):
        c.append(-1)
    print(min(c))"""

"""for i in range(int(input())):
    a, b = map(int, input().split())
    c = 0
    if(a == b):
        c = 0
    elif(a > b):
        d = a/b
        if(d == a//b):
            if(d == 1 and a == b):
                c = 0
            elif(d == 2 or d == 4 or d == 8):
                c = 1
            elif(d > 8 and d%2 == 0):
                while(d != 1):
                    if(d%8 == 0):
                        d = d//8
                        c += 1
                    elif(d%4 == 0):
                        d = d//4
                        c += 1
                    elif(d%2 == 0):
                        d = d//2
                        c += 1
                    else:
                        c = -1
                        break
            else:
                c = -1
        else:
            c = -1
    else:
        d = b/a
        if(d == b//a):
            if(d == 1 and b == a):
                c = 0
            elif(d == 2 or d == 4 or d == 8):
                c = 1
            elif(d > 8 and d%2 == 0):
                while(d != 1):
                    if(d%8 == 0):
                        d = d//8
                        c += 1
                    elif(d%4 == 0):
                        d = d//4
                        c += 1
                    elif(d%2 == 0):
                        d = d//2
                        c += 1
                    else:
                        c = -1
                        break
            else:
                c = -1
        else:
            c = -1
    print(c)"""

"""for i in range(int(input())):
    s = input()
    a = list(s)
    d = ['0', '1', '0']
    e = ['1', '0', '1']
    b = 0
    if(len(a) < 3):
        b = 0
    elif(len(a) == 3):
        if(a != d and a != e):
            b = 0
        else:
            b = 1
    else:
        g = 0
        h = 0
        for i in a:
            if(i == '0'):
                g += 1
            else:
                h += 1
        if(g <= 1 or h <= 1):
            b = 0
        if(g < h):
            b = g
        else:
            b = h
    print(b)"""

"""for i in range(int(input())):
    n, x = map(int, input().split())
    a = list(map(int, input().split()))
    b = 0
    c = 0
    d = 0
    if(len(a) == 1):
        if(a[0]%2 == 0):
            b = 0
        else:
            b = 1
    else:
        for i in a:
            if(i%2 == 0):
                c += 1
            else:
                d += 1
        if(x < c+d):
            if(c and d > 1):
                b = 1
            elif(c == 0 and x%2 == 0):
                b = 0
            elif(d == 0):
                b = 0
            else:
                b = 1
        else:
            #if(x%2 == 0):
            if(d%2 != 0):
                b = 1
            else:
                b = 0
    if(b == 0):
        print("No")
    else:
        print("Yes")"""
    #print(b)

#import math
"""for i in range(int(input())):
    n, m, k = map(int, input().split())
    c = n//k
    if(m == 0):
        d = 0
    elif(m <= c):
        d = m
    else:
        d = (m-c)//(k-1)
        if((m-c)%(k-1) != 0):
            d += 1
        d = c - d
            #d = c - math.ceil((m-c)/(k-1))
        #else:
            #d = c - 1
        #if(d < 0):
            #d = 0
    print(d)"""

"""def min(n,m):
    if(n%2 == 0 and m%2 == 0):
        b = n*(m//2)
    elif(n%2 == 0 and m%2 != 0):
        b = (n*(m//2))+n//2
    elif(n%2 != 0 and m%2 == 0):
        b = n*(m//2)
    else:
        b = (n*(m//2)) + (n-(n//2))
    return(b)

for i in range(int(input())):
    n, m = map(int, input().split())
    print(min(n,m))"""

"""from collections import defaultdict

def smallest(s1, s2):
    assert s2 != ''
    d = defaultdict(int)
    nneg = [0]
    def incr(c):
        d[c] += 1
        if d[c] == 0:
            nneg[0] -= 1
    def decr(c):
        if d[c] == 0:
            nneg[0] += 1
        d[c] -= 1
    for c in s2:
        decr(c)
    minlen = len(s1) + 1
    j = 0
    for i in range(len(s1)):
        while nneg[0] > 0:
            if j >= len(s1):
                return minlen
            incr(s1[j])
            j += 1
        minlen = min(minlen, j - i)
        decr(s1[i])
    return minlen

# ans = smallest("12222133333332", "123")
# print(ans)

for i in range(int(input())):
    s1= input()
    e = 0
    g = 0
    h = 0
    for i in range(len(s1)):
        if(s1[i] == '1'):
            e += 1
        elif(s1[i] == '2'):
            g += 1
        elif(s1[i] == '3'):
            h += 1
    s2="123"

    if(e < 1 or g < 1 or h < 1):
        ans = 0
    else:
        ans= smallest(s1, s2)
    print(ans)"""

"""for i in range(int(input())):
    a, b, c, d = map(int, input().split())
    r = b
    ans = 0
    if(b < a and c < d):
        ans = -1
    else:
        i = 0
        while(r < a):
            r += c - d
            i += 1
        if(i == 0):
            ans = b
        else:
            ans = b + i*c
    print(ans)

if(d >= c && a >b)
            cout << -1 << endl;
            continue;
        }
        if(a <= b){
            cout << b << endl;
            continue;
        }
        a -= b;
        long int q = c-d;
        if(a % q == 0)
        {
            cout << ((a/q)*c)+b << endl;
        }else{
            cout << (((a/q)+1)*c)+b << endl;
        }"""
"""for i in range(int(input())):
    n = int(input())
    s = list(map(int, input().split()))
    s.sort()
    c = 0
    p = 1
    if(n == 1):
        c = 1
    else:

        for i in range(n):
            if(s[i] <= p):
                c += 1
                p = p - s[i] + 1
            else:
                p = p + 1
    print(c)"""

"""res = False
def chkList(lst):
    if len(lst) < 0 :
        res = True
    res = all(ele == lst[0] for ele in lst)
    return(res)

for i in range(int(input())):
    n = int(input())
    l = list(map(int, input().split()))
    p = l.copy()
    c = 0
    d = []
    if(chkList(l) == True):
        h = len(l)
    else:

        h = len(l)
    print(h)"""

"""for i in range(int(input())):
    n = int(input())
    l = list(map(int, input().split()))
    l.sort()
    l.reverse()
    #print(l)
    res = 0
    p = 0
    while(True):
        res += 1
        p = p + l[p]
        if(p >= n):
            break
    print(res)"""

"""7017173017"""

a,b = map(int, input().split())

def prb():
    for l in range(0,101):
        for r in range(l,101):
            e = 0
            o = 0
            for c in range(l,r+1):
                if(c%2==0):
                    e = e+1
                else:
                    o = o+1
            if(e == a and o == b):
                print("YES")
                return
    print("NO")
    return

prb()

n, m = map(int, input().split())
if abs(n - m) == 1 or n == m:
    print("YES")
else:
    print("NO")

a, b = map (int, input().split())
print (("NO", "YES")[a == b or b - a == 1 and a != 0 and b != 0])

a,b=map(int,input().split())
if abs(a-b)<2 :
    if a!=0 and b!=0:print("YES")
    else:print("NO")
else:print("NO")

s=input()
nums=s.split(" ")
a=int(nums[0])
b=int(nums[1])

if (a==b or b==a+1 or a==b+1) and (b>0):
    print("YES")
else:
    print("NO")

a, b = map(int, input().split())
if abs(a - b) <= 1:
    print("YES")
else:
    print("NO")

a,b=map(int,input().split())
if (a*b>0) and ((abs(b-a)==1) or (abs(b-a)==0)) :
    print("YES")
else:
    print("NO")

import sys
import math

m,d = map(int,sys.stdin.readline().split())

days31=[1,3,5,7,8,10,12]
days30=[4,6,9,11]

numofdays=28
if m in days31:numofdays=31
if m in days30:numofdays=30

numweeks=numofdays/7
if numofdays%7>0:
   numweeks+=1

end  =(numofdays-1)%7+1
end+=d-1
if end>7:
   numweeks+=1

print numweeks

l=lambda:map(int,raw_input().split())
even,odd=l()
if abs(even-odd)<=1:
    print 'YES'
else:
    print 'NO'

import math
a,b=input().split()
a = math.fabs(int(a))
b = math.fabs(int(b))
z = a - b
z = math.fabs(z)
if z<=-2 or z>=2:
    print("NO")
else:
    print("YES")

n,m=input().split()
n,m=int(n),int(m)
if(m-n)==1 or (m-n)==0:
    print("YES")
else:
    print("NO")

a, b = map(int, input().split())
if abs(a-b) >= 2 and (a != 0 and b != 0):
    print('NO')
else:
    print('YES')

a,b=map(int,input().split())
if (a*b>=0) and (abs(a-b)<2):
    print("YES")
else:
    print("NO")

from __future__ import division

from sys import stdin, stdout, maxint

from fractions import Fraction
import bisect, collections, heapq, itertools, operator

A, B = map (int, stdin.readline ().split ())

if (abs (A - B) <= 1):
	print 'YES'
else:
	print 'NO'

def interval (odd,even):
     if odd == 0 or even == 0:
          return "NO"
     elif abs(odd-even) > 1:
          return "NO"
     else:
          return "YES"

odd,even = list(map(int,input().split()))
print (interval(odd,even))

import math
a,b=input().split()
a = math.fabs(int(a))
b = math.fabs(int(b))
z = a - b
z = math.fabs(z)
if z>1:
    print("NO")
else:
    print("YES")

a,b=map(int, input().split())
if abs(a-b)<=1 and b>=a: print("YES")
else: print("NO")

n,m = map(int,input().split())

pai = 0
imp = 0

i = 1

while pai + imp != n + m :

	if i%2==0 :
		pai = pai + 1
	else :
		imp = imp + 1
	i = i + 1

if pai == n and imp == m :
	print("YES")
else :
	print("NO")

a, b = map(int, input().split())

if abs(a - b) >= 2 or a == 1 and b == 0:
    print("NO")
else:
    print("YES")

o, e = [int(x) for x in input().split()]
print(["NO", "YES"][abs(o - e) <= 2])

m,n=map(int,input().split())
if m==n:
    print("YES")
elif n-m==1:
    print("YES")
else:
    print("NO")

import math
n,k=map(int,input().split())
if abs(n-k)<=1:
    print("YES")
else:
    print("NO")

a,b=raw_input().split()
A=int(a)
B=int(b)
if (A-B==1) or (B-A==1) or (B-A==0) or ((A==0) and (B==0)) :
    print 'YES'
else:
    print 'NO'

a,b = map(int,raw_input().split())
print "YES" if abs(a-b) < 2 else "NO"

a,b = [int(x) for x in input().split()]
if b-a <= 1 and a*b != 0:
    print('YES')
else:
    print('NO')

n,m=map(int,raw_input().split())
if m==n or m-n==1:
    print 'YES'
else:
    print 'NO'

l,r=map(int,input().split(" "))
a=0
b=0
c=0
d=0
for i in range(1,l+r+1):
    if(i%2==0):
        a=a+1
    if(i%2==1):
        b=b+1

for i in range(2,l+r+2):
    if(i%2==0):
        c=c+1
    if(i%2==1):
        d=d+1

if(a==l and b==r or(c==l and d==r)):
    print("YES")
else:
    print("NO")

a, b = map(int, input().split())
if abs(a-b) <= 1 and a != 0 and b != 0:
    print("YES")
else:
    print("NO")

a,b=map(int,input().strip().split()[:2])
eve=odd=0
for x in range(1,a+b+1):
	if x%2==0:
		eve+=1
	else:
		odd+=1
if eve==a and odd==b:
	print('YES')
else:
	print('NO')

n,m=map(int,input().split())

if abs(n-m) > 1:
   print('NO')
elif n==m:
   print('NO')
else :
   print('YES')

a,b = map(int,input().split())
if a - b == 1 or  b-a == 1 or a-b == 0 or b-a == 0 and a !=0 and b!=0:
	print("YES")
else:
	print("NO")

a,b = [int(x) for x in input().split()]
if (b-a) <= 1:
    print('YES')
else:
    print('NO')

a, b = map(int, raw_input().split())
if (abs(a-b) == 1 and b > a) or abs(a-b) == 0 :
    print "YES"
else :
    print "NO"

a, b = list(map(int,input().split()))
print('YES' if a-b<=1 else 'NO')

a , b = map ( int , raw_input () . split () )
if 0 <= a <= 100 and 0 <= b <= 100 :
    if abs (a - b) > 1 and a != 0 and b != 0 :print 'NO'
    else :print 'YES'

a,b=map(int,input().split())
print('YES' if a-b in [1,-1,0] else 'NO')

n,m = map(int,raw_input().split())
if abs(n-m)<=1 :
	print "YES"
else:
	print "NO"

a,b=map(int,input().split())
if b-a==1 or b-a==0:
    print("YES")
else:
    print("NO")

a,b=map(int,input().split())
if a==b-1 or b==a-1 or a==b:
    print("YES")
else:
    print("NO")

a, b = map(int, input().split())
if abs(a - b) < 2 and a != b != 0:
    print('YES')
elif abs(a - b) >= 2 or a == b == 0:
    print('NO')

a,b=map(int,input().split())
if a==b==0:
    print('YES')
elif max(a,b)-min(a,b)==1:
    print('YES')
else: print('NO')

l = map(int, raw_input().split())
if abs(l[0] - l[1]) > 1:
    print "NO"
else:
    print "YES"

n,m = input().strip().split()
n = int(n)
m = int(m)
if n > m or m - n > 1:
    print('NO')
else:
    print('YES')

a, b = map(int, raw_input().split())

print 'YES' if abs(a - b) < 2 else 'NO'

for i in range(1):
  n,m=map(int,input().split())
  if n!=0 and m!=0:
   if abs(n-m)==0 or abs(n-m)==1:
    print('YES')
   else:
    print('NO')
  else:
      print('NO')

even, odd = input().split(" ")
odd = int(odd)
even  = int(even)
if (odd + even) % 2 == 0:
    if odd == even:
        print('YES')
    else:
        print("NO")
else:
    if even+1 == odd:
        print("YES")
    else:
        print("NO")

a, b = [int(i) for i in input().split()]
if b >= a:
    print('YES')
else:
    print('NO')

i1=raw_input()
i2=i1.split()
i2List=[int(a0)for a0 in i2]
numb1=i2List[0]
numb2=i2List[1]
if (numb1<=0 and numb2<=0)or(numb1>=100 and numb2>=100):
	print 'NO'
else:
    if abs(numb1-numb2)>=0 or abs(numb1-numb2)<=1 :
    	print 'YES'
    else:
    	print 'NO'

a, b = list(map(int, input().strip().split(' ')))
if abs(a-b) > 1:
    print('NO')
else:
    print('YES')

# cook your code here
s=raw_input()
arr=s.split(" ")
#print arr
x=int(arr[0])
y=int(arr[1])
#print arr[0]
if(x-y==1):
    print "Yes"
elif(y-x==1):
    print "Yes"
elif(x==y):
    print "Yes"
else:
    print "No"

a,b=map(int,input().split())
if abs(b-a)==1 or abs(b-a)==0:
    print("YES")
else:
    print("NO")

a,b = map(int,input().split())
if a - b == 1 or  b-a == 1 or a-b == 0 or b-a == 0:
	print("YES")
else:
	print("NO")

a,b =map(int,raw_input().split())
if abs(a-b)==1:
    print "YES"
else:
    print "NO"

n, m = map(int, input().split())
if abs(n - m) < 2 or (abs(n - m) == 2 and n != 0 and m != 0):
    print("YES")
else:
    print("NO")

a,b=map(int,input().split())
if a<=b:
	print('YES')
else:
	print('NO')

even, odd = [int(x) for x in input().strip().split()]

if abs(odd-even) == 1:
    print('YES')
else:
    print('NO')

a,b=map(int,input().split())
if(a==b or a==b+1 or a+1==b):
    print('YES')
else:
    print('NO')

a,b = map(int,input().split(" "))
print("YES" if abs(a-b)<2 else "NO")

a,b=map(int,input().split())
if abs(a-b)>1:
    print('NO')
else: print('YES')

a, b = map(int, input().split())
if abs(a - b) <= 1:
    print('YES')
else:
    print('NO')

a, b = map(float, raw_input().split())

if abs(b - a) == 1:
	print "YES"
else:
	print "NO"

a=input().split()
rt=len(a)
lst=[]
i=0
while(i<rt):
    lst.append(int(a[i]))
    i=i+1
k=lst[0]+lst[1]
if(k%2==0):
    print("NO")
else:
    print("YES")

a,b = list(map(int,input().split()))
c = a + b
if a == b:
    print('Yes')
elif c % 2 == 1:
    if c // 2 == b - 1 or c // 2 == a - 1:
        print('Yes')
    else:
        print('No')
else:
    print('No')

a, b = map(int, input().split())
if abs(a-b) > 1:
    print("NO")
else:
    print("YES")

a,b = map(int, raw_input().split())

print "YES" if a - b <= 1 else "NO"

a,b = map(int,input().split())
if a < b and b-1 == a:
    print('YES')
elif a == b:
    print('YES')
else:
    print('NO')

import bisect
from collections import defaultdict
from collections import deque
import math
import re

def ni():
    return int(raw_input())

def nis():
    return map(int, raw_input().split())

def si():
    return raw_input()

def sis():
    return raw_input().split()

def arr_str(a):
    return ' '.join(map(str, a))

a, b = nis()

print 'YES' if abs(a - b) < 2 else 'NO'

even,odd=map(int,input().split())
if odd==0:
	print("NO")

elif even-odd==1 or even-odd==-1:
	print("YES")
elif even-odd==0:
	print("YES")
else:
	print("NO")

if __name__== "__main__":
    a,b=map(int,raw_input().split())
    e=o=0
    n=a+b
    i=1
    while i<=n:
        if i%2:
            o+=1
        else:
            e+=1
        i+=1
    if e==a and o==b:
        print "YES"
    else:
        print "NO"

a,b=map(int,input().strip().split()[:2])
if a==b or a==b+1 or a+1==b :
	print('YES')
else:
	print('NO')

a,b=map(int,input().split())
if (a-b<=1) and (a-b>=-1):
    print("YES")
else:
    print("NO")

n,m=input().split()
n,m=int(n),int(m)
if(m-n)==1 or (m-n)==0:
    print("YES")
else:
    print("NO")

a, b = [int(x) for x in input().split()]
n = a + b
if a - b >= -2 and a - b <= 2:
    if (n % 2 == 0 and (a % 2 == 0 and b % 2 == 0) or (a % 2 != 0 and b % 2 !=0)) or (n % 2 !=0 and (a % 2 !=0 or b % 2 != 0)):
        print("YES")
    else:
        print("NO")
else:
    print("NO")

n,m=map(int,raw_input().split())
if m==n or m-n==1:
    print 'YES'
else:
    print 'NO'

#!/usr/bin/python2

import sys

stdin = sys.stdin.readline()
stdin = stdin.split(' ')
#args = sys.argv[1:]
val1 = int(stdin[0])
val2 = int(stdin[1])

if (val1 == 0):
    print("NO")
elif ((val2 - val1) == 1 or (val2 - val1) == 0):
    print("YES")
else:
    print("NO")

a,b=map(int,input().split())
if a==b-1 or b==a-1:
    print("YES")
else:
    print("NO")

a,b=map(int,input().split())
if ((a*b<=10000) and (a*b>=1)) and ((abs(b-a)==1) or (abs(b-a)==0)):
    print("YES")
else:
    print("NO")

a, b = map(int, input().split())
if abs(a - b) <= 1:
    print('YES')
else:
    print('NO')

e,o=map(int,input().split())
print("YES" if(abs(o-e)<=1) else "NO")

(a,b)=map(int,input().split());
if((b==a or b==a+1) and b!=0):
    print("YES");
else:
    print("NO");

a, b = map(int, input().split())
if abs(a-b) < 2 and a != 0 and b != 0:
    print('YES')
else:
    print('NO')

import os
import sys
import math
import heapq
from decimal import *
from io import BytesIO, IOBase
from collections import defaultdict, deque

def r():
    return int(input())
def rm():
    return map(int,input().split())
def rl():
    return list(map(int,input().split()))

a,b=rm()
if abs(a-b)<=1:
    print("YES")
else:
    print("NO")

a,b = list(map(int,input().split()))
c = a + b
if c + 1 >= a * 2:
    print('Yes')
else:
    print('No')

n, m = map(int, input().split())
if abs(n - m) == 1 or (n == m and n, m > 0) :
    print("YES")
else:
    print("NO")

x,y = map(int,raw_input().split())
if x==y +1 or y == x+1:
    print("YES\n")
else:
    print("NO\n")

a,b=map(int,input().split())
if a<=b:
	print('YES')
else:
	print('NO')

a, b = map(int, input().split())

isTrue = False
odd = 0
even = 0
for i in range(1, 300):
    if even == a and odd == b:
        isTrue = True

    if i & 1:
        odd += 1
    else:
        even += 1

if isTrue:
    print("YES")
else:
    print("NO")

# -*- coding:utf-8 -*-

def some_func():
    """
    """

    a,b = [int(x) for x in raw_input().split()]
    if abs(b-a)<2:
        print "YES"
    else:
        print "NO"

if __name__ == '__main__':
    some_func()

a, b = map(int, raw_input().split())
print ['NO', 'YES'][abs(a-b) < 2]

import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time,copy,functools

sys.setrecursionlimit(10**7)
inf = 10**20
eps = 1.0 / 10**10
mod = 10**9+7
dd = [(-1,0),(0,1),(1,0),(0,-1)]
ddn = [(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def I(): return int(sys.stdin.readline())
def F(): return float(sys.stdin.readline())
def S(): return input()
def pf(s): return print(s, flush=True)

def main():
    a,b = LI()
    if abs(a-b) < 2 or a*b == 0:
        return 'YES'

    return 'NO'

print(main())