#include typedef long long ll; ll gi(){ ll x=0,f=1; char ch=getchar(); while(!isdigit(ch))f^=ch=='-',ch=getchar(); while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); return f?x:-x; } std::mt19937 rnd(time(NULL)); #define rand rnd #define pr std::pair #define all(x) (x).begin(),(x).end() #define fi first #define se second templatevoid cxk(T&a,T b){a=a>b?a:b;} templatevoid cnk(T&a,T b){a=a>=1; } return ret; } templatevoid inc(Ta&a,Tb b){a=a+b>=mod?a+b-mod:a+b;} templatevoid dec(Ta&a,Tb b){a=a>=b?a-b:a+mod-b;} #endif std::vectorG[10010],rG[10010]; int F[10010],out[10010]; void SetL(int); void SetW(int x){ if(F[x]){assert(F[x]==1);return;} F[x]=1; for(int i:rG[x]) if(!--out[i])SetL(i); } void SetL(int x){ if(F[x])return; F[x]=-1; for(int i:rG[x])SetW(i); } int main(){ #ifdef LOCAL freopen("in.in","r",stdin); //freopen("out.out","w",stdout); #endif std::vectorv; for(int i=1111;i<=9999;++i){ int x1=i%10,x2=i/10%10; int y1=i/100%10,y2=i/1000%10; if(!x1||!x2||!y1||!y2){F[i]=-1;continue;} bool yes=0; auto trans=[&](int&num,int nn){ if(nn==0)yes=1; else{ std::swap(num,nn); G[i].push_back(y1+y2*10+x1*100+x2*1000); rG[y1+y2*10+x1*100+x2*1000].push_back(i); ++out[i]; std::swap(num,nn); } }; int *p[4]={&x1,&x2,&y1,&y2}; for(int i=0;i<2;++i) for(int j=0;j<4;++j) if(i!=j) trans(*p[i],(*p[i]+*p[j])%10); if(yes)v.push_back(i),++out[i]; } for(int i:v)SetW(i); int T=gi(); while(T--){ int a=gi(),b=gi(),c=gi(),d=gi(),f=a+b*10+c*100+d*1000; if(F[f]==1)puts("Alice"); else if(F[f]==0)puts("Tie"); else puts("Bob"); } return 0; }