output_description: If the objective is achievable, print `YES`; if it is unachievable, print
  `NO`.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      S
attempt: #!/usr/bin/env python3
  A, B = map(int, input().split())
  a = list(map(int, input().split()))
  b = list(map(int, input().split()))
  dp = [[0] * (B + 1) for _ in range(A + 1)]
  
  for i in range(A)[::-1]:
      dp[i][B] = dp[i + 1][B] + a[i] if (i + B) % 2 == 0 else dp[i + 1][B]
  for j in range(B)[::-1]:
      dp[A][j] = dp[A][j + 1] + b[j] if (A + j) % 2 == 0 else dp[A][j + 1]
  
  for i in range(A)[::-1]:
      for j in range(B)[::-1]:
          dp[i][j] = (
              max(dp[i + 1][j] + a[i], dp[i][j + 1] + b[j])
              if (i + j) % 2 == 0
              else min(dp[i + 1][j], dp[i][j + 1])
          )
  
  print(dp[0][0])
  
problem_description: Statement
  
  Snuke has a string S consisting of three kinds of letters: `a`, `b` and `c`.
  
  He has a phobia for palindromes, and wants to permute the characters in S so
  that S will not contain a palindrome of length 2 or more as a substring.
  Determine whether this is possible.
samples: [{"input": "abac", "output": "YES\n    \n\nAs it stands now, S contains a palindrome `aba`, but we can permute the\ncharacters to get `acba`, for example, that does not contain a palindrome of\nlength 2 or more.\n\n* * *"}, {"input": "aba", "output": "NO\n    \n\n* * *"}, {"input": "babacccabab", "output": "YES"}]