In [10]:
import sys
grundy_dict = {0 : 0, k : k, l : l, 1: 1}
props = map(int, raw_input().split())
k = props[0]
l = props[1]
m = props[2]
i = 1
recurse_value = -1
min = sys.maxint
while True:
if i not in grundy_dict:
i += 1
else:
val_a = i - 1
val_b = i - k
val_c = i - l
min_val = min(min(val_a, val_b), val_c)
if min_val == 1:
grund_dict[i] = 0
recurse_value = i
break
elif min_val > 0:
grund_dict[i] = min_val - 1
games_arr = map(int, raw_input().split())
str_ = ""
for index in range(0, len(games_arr)):
curr_n = games_arr[index]
if curr_n == 1 or curr_n == k or curr_n == l:
str_ += "A"
elif curr_n < l:
str_ += "B"
else:
if curr_n % recurse_value == 0:
str_ += "B"
else:
str_ += "A"
print str_
In [ ]: