output_description: Print the number of ways to select bags so that the total number of biscuits
  inside is congruent to P modulo 2.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N P
      A_1 A_2 ... A_N
attempt: def main():
      N, P = map(int, input().split())
      *A, = map(int, input().split())
  
      editorial(N, P, A)
  
  def editorial(N, P, A):
      odds = [a for a in A if a % 2 == 1]
      odd = len(odds)
      even = N - odd
  
      if odd == 0:
          if P = 1:
              print(0)
          else:
              print(2 ** N)
          return
      
      # ある奇数袋を取り除いて、残りでの組み合わせ(選ぶ選ばないの2通りがN-1)
      ans = 2 ** (N - 1)
      # s = 組み合わせのビスケット枚数
      # P=0,s:奇数であるとき、加えるのは1通り
      # P=0,s:奇数でないとき、加えないのは1通り
      # P=1,s:奇数であるとき、加えないのは１通り
      # P=1,s:奇数でないとき、加えるのは1通り
      print(ans)
  
  
  if __name__ == '__main__':
      main()
  
problem_description: Statement
  
  There are N bags of biscuits. The i-th bag contains A_i biscuits.
  
  Takaki will select some of these bags and eat all of the biscuits inside.
  Here, it is also possible to select all or none of the bags.
  
  He would like to select bags so that the total number of biscuits inside is
  congruent to P modulo 2. How many such ways to select bags there are?
samples: [{"input": "2 0\n    1 3", "output": "2\n    \n\nThere are two ways to select bags so that the total number of biscuits inside\nis congruent to 0 modulo 2:\n\n  * Select neither bag. The total number of biscuits is 0.\n  * Select both bags. The total number of biscuits is 4.\n\n* * *"}, {"input": "1 1\n    50", "output": "0\n    \n\n* * *"}, {"input": "3 0\n    1 1 1", "output": "4\n    \n\nTwo bags are distinguished even if they contain the same number of biscuits.\n\n* * *"}, {"input": "45 1\n    17 55 85 55 74 20 90 67 40 70 39 89 91 50 16 24 14 43 24 66 25 9 89 71 41 16 53 13 61 15 85 72 62 67 42 26 36 66 4 87 59 91 4 25 26", "output": "17592186044416"}]