n, k, t = map(int, input().split()) c = input().strip() # Precompute for each position the nearest B to the left and right (for Alice) left_B = [-1] * (n + 2) # 1-based right_B = [-1] * (n + 2) left_A = [-1] * (n + 2) right_A = [-1] * (n + 2) last = -1 for i in range(1, n+1): if c[i-1] == 'B': last = i left_B[i] = last last = -1 for i in range(n, 0, -1): if c[i-1] == 'B': last = i right_B[i] = last last = -1 for i in range(1, n+1): if c[i-1] == 'A': last = i left_A[i] = last last = -1 for i in range(n, 0, -1): if c[i-1] == 'A': last = i right_A[i] = last current_pos = k remaining = t while True: current_char = c[current_pos - 1] if remaining == 0: print('Alice' if current_char == 'B' else 'Bob') break if current_char == 'A': lb = left_B[current_pos] rb = right_B[current_pos] dl = current_pos - lb if lb != -1 else float('inf') dr = rb - current_pos if rb != -1 else float('inf') min_d = min(dl, dr) if min_d == float('inf'): print('Bob') break if min_d > remaining: print('Bob') break if dl <= dr: current_pos = lb else: current_pos = rb remaining -= min_d if remaining % 2 == 0: print('Alice') else: print('Bob') break else: la = left_A[current_pos] ra = right_A[current_pos] dl = current_pos - la if la != -1 else float('inf') dr = ra - current_pos if ra != -1 else float('inf') min_d = min(dl, dr) if min_d == float('inf'): print('Alice') break if min_d > remaining: print('Alice') break if dl <= dr: current_pos = la else: current_pos = ra remaining -= min_d if remaining % 2 == 0: print('Alice') else: print('Bob') break