样例输出
Lbnb!
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<=n;i++)
#define pb push_back
#define mp make_pair
#define IO ios::sync_with_stdio(false)
#define fi first
#define se second
typedef long long ll;
typedef pair<ll,ll> pll;
const int maxn=4e5+5;
const int maxm=1e6+5;
const ll INF=0x3f3f3f3f;
const ll mod=1e9+7;
const double PI=acos(-1.0);
ll n,m,k,t,minn=INF,maxx,cnt,sum,tmp,f;
ll fac[85];
ll aa[13],bb[13];
ll mul(ll u,ll v,ll p)
{
return (u*v-(ll)((long double)u*v/p)*p+p)%p;
}
ll exgcd(ll a,ll b,ll &x,ll &y)
{
if(b==0) {x=1;y=0;return a;}
ll r=exgcd(b,a%b,x,y);
ll t=x;
x=y;
y=t-a/b*y;
return r;
}
/*
ll crt(){
ll lcm=1,ans=0;
rep(i,1,k){
lcm*=b[i];
}
rep(i,1,k){
M[i]=lcm/b[i];
exgcd(M[i],b[i],x,y);
x=(x%b[i]+b[i])%b[i];
ans=(ans+a[i]*M[i]*x)%lcm;
}
return (ans+lcm)%lcm;
}*/
ll excrt()
{
ll x,y;
ll M=bb[1],ans=aa[1];
for(int i=2;i<=k;i++)
{
ll a=M,b=bb[i],c=(aa[i]-ans%b+b)%b;
ll gcd=exgcd(a,b,x,y),bg=b/gcd;
if(c%gcd!=0) return -1;
x=mul(x,c/gcd,bg);
ans+=x*M;
M*=bg;
ans=(ans%M+M)%M;
if(ans>1e15)return -1;
}
return (ans%M+M)%M;
}
int main(){
fac[1]=1,fac[2]=1;
rep(i,3,85){
fac[i]=fac[i-1]+fac[i-2];
if(fac[i]>1e15)
break;
}
cin>>k;
rep(i,1,k){
cin>>bb[i]>>aa[i]; //模 余数
}
ll n=excrt();
if(n==0 || n==-1) //n>=1
return cout<<"Tankernb!"<<endl,0;
if(n==1)
{
cout<<"Zgxnb!"<<endl;
return 0;
}
if(n==2)
{
cout<<"Lbnb!"<<endl;
return 0;
}
int f=1;
rep(i,3,85){
if(fac[i]>1e15)
break;
if(fac[i]==n){
f=0;
break; //先手必败
}
}
// cout<<n<<endl;
if(f)
cout<<"Zgxnb!"<<endl;
else
cout<<"Lbnb!"<<endl;
return 0;
}