#include using namespace std; int main(){ int N, K, T; cin >> N >> K >> T; vector c(N); for (int i = 0; i < N; i++){ cin >> c[i]; } bool f = false; if (c[K] == 'B'){ f = true; for (int i = 0; i < N; i++){ c[i] ^= 'A' ^ 'B'; } } vector a; for (int i = 0; i < N; i++){ if (c[i] == 'A'){ a.push_back(i); } } string ans; if (c == vector(N, 'A')){ ans = "Bob"; } else { int L = K, R = K; while (L > 0){ if (c[L - 1] == 'A'){ L--; } else { break; } } while (R < N - 1){ if (c[R + 1] == 'A'){ R++; } else { break; } } if (R - L >= 1){ if (L > 0 && T > K - L && T % 2 == (K - L) % 2){ ans = "Alice"; } else if (R < N - 1 && T > R - K && T % 2 == (R - K) % 2){ ans = "Alice"; } else { ans = "Bob"; } } else { if (T % 2 == 0){ ans = "Bob"; } else { ans = "Bob"; if (K != N - 1){ auto itr = upper_bound(a.begin(), a.end(), K); if (itr == a.end()){ ans = "Alice"; } else if (*itr - K == 2){ ans = "Alice"; } else if (*itr - K > T || (*itr - K) % 2 != T % 2){ ans = "Alice"; } } if (K != 0){ auto itr = lower_bound(a.begin(), a.end(), K); if (itr == a.begin()){ ans = "Alice"; } else { itr--; if (K - *itr == 2){ ans = "Alice"; } else if (K - *itr > T || (K - *itr) % 2 != T % 2){ ans = "Alice"; } } } } } } if (f){ if (ans == "Bob"){ ans = "Alice"; } else { ans = "Bob"; } } cout << ans << endl; }