output_description: If Alice will win, print `Alice`; if Bob will win, print `Bob`.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N L
      s_1
      s_2
      :
      s_N
attempt:         import sys
          readline = sys.stdin.readline
          
          N, L = map(int, readline().split())
          node = set([1])
          for _ in range(N):
              S = list(map(int, readline().strip()))
              ls = len(S)
              pre = 1
              for s in S:
                  vn = 2*pre + s
                  if vn not in node:
                      node.add(vn)
                  pre = vn
          cnt = 0
          for d in node:
              h = 0
              if 2*d in node:
                  h += 1
              if 2*d+1 in node:
                  h += 1
              if h == 1:
                  depth = L-d.bit_length()+1
                  cnt ^= (-depth&depth)
          
          print('Alice' if cnt else 'Bob')        
  
problem_description: Statement
  
  For strings s and t, we will say that s and t are _prefix-free_ when neither
  is a prefix of the other.
  
  Let L be a positive integer. A set of strings S is a _good string set_ when
  the following conditions hold true:
  
    * Each string in S has a length between 1 and L (inclusive) and consists of the characters `0` and `1`.
    * Any two distinct strings in S are prefix-free.
  
  We have a good string set S = \\{ s_1, s_2, ..., s_N \\}. Alice and Bob will
  play a game against each other. They will alternately perform the following
  operation, starting from Alice:
  
    * Add a new string to S. After addition, S must still be a good string set.
  
  The first player who becomes unable to perform the operation loses the game.
  Determine the winner of the game when both players play optimally.
samples: [{"input": "2 2\n    00\n    01", "output": "Alice\n    \n\nIf Alice adds `1`, Bob will be unable to add a new string.\n\n* * *"}, {"input": "2 2\n    00\n    11", "output": "Bob\n    \n\nThere are two strings that Alice can add on the first turn: `01` and `10`. In\ncase she adds `01`, if Bob add `10`, she will be unable to add a new string.\nAlso, in case she adds `10`, if Bob add `01`, she will be unable to add a new\nstring.\n\n* * *"}, {"input": "3 3\n    0\n    10\n    110", "output": "Alice\n    \n\nIf Alice adds `111`, Bob will be unable to add a new string.\n\n* * *"}, {"input": "2 1\n    0\n    1", "output": "Bob\n    \n\nAlice is unable to add a new string on the first turn.\n\n* * *"}, {"input": "1 2\n    11", "output": "Alice\n    \n\n* * *"}, {"input": "2 3\n    101\n    11", "output": "Bob"}]