#include <iostream> #include <algorithm> #include <set> #include <vector> #include <set> #include <queue> #include <tuple> #include <map> #define se second #define fi first using namespace std; using ll = long long; using ull = unsigned long long; #define rep(i,n) for(long long i = 0; i < (int)n; i++) #define FOR(i, m, n) for(long long i = (m);i < (n); ++i) #define ALL(obj) (obj).begin(),(obj).end() #define SPEED cin.tie(0);ios::sync_with_stdio(false); template<class T> using V = vector<T>; template<class T, class U> using P = pair<T, U>; template<class T> using PQ = priority_queue<T>; template<class T> using PQR = priority_queue<T,vector<T>,greater<T>>; void print(V<ll> ar) { for(auto x: ar)cout << x << " " ; cout << endl; } ll gcd(ll a, ll b) { if (a<b)return gcd(b,a); if (b==0)return a; return gcd(b, a%b); } ll mpow(ll x, ll n, ll p) { ll r = 1; while (n>0) { if (n%2) { r*=x; r%=p; } x *= x; x %= p; n/=2; } return r; } const ll mod = 998244353; V<P<ll,int>> facts(ll n) { V<P<ll,int>> res; if (n==1)return res; for(int x = 2; x*x<=n; x++) { if (n%x==0) { int p = 0; while (n%x==0) { p+=1; n/=x; } res.emplace_back(P<ll,int>(x, p)); } } if (n!=1) { res.emplace_back(P<ll,int>(n, 1)); } return res; } int main() { int n,k;cin >> n >> k; V<ll> a(n),b(n); rep(i, n)cin >> a[i]; rep(i, n)cin >> b[i]; V<P<ll, int>> p(n); rep(i, n) { p[i].se = i; p[i].fi = b[i]-a[i]; } sort(p.begin(), p.end()); V<int> ans(n); rep(i, n) { if (i<k)ans[p[i].se] = 0; else ans[p[i].se] = 1; } rep(i, n) { if (ans[i])cout << "B"; else cout << "A"; } cout << endl; }