#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[4][4],vis[4][4],tj;
int dsb(){
for(int i=1;i<=3;i++)
if(vis[i][1]==vis[i][2]&&vis[i][2]==vis[i][3]&&vis[i][1])return vis[i][1];
for(int i=1;i<=3;i++)
if(vis[1][i]==vis[2][i]&&vis[2][i]==vis[3][i]&&vis[1][i])return vis[1][i];
if(vis[1][1]==vis[2][2]&&vis[2][2]==vis[3][3]&&vis[1][1])return vis[1][1];
if(vis[1][3]&&vis[1][3]==vis[2][2]&&vis[2][2]==vis[3][1])return vis[1][3];
return 0;
}
int dfs(int cnt){
if(dsb()!=0)return cnt%2==1?LONG_LONG_MIN:LONG_LONG_MAX;
if(cnt==9){
int sum=0;
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
if(vis[i][j]==1)sum+=a[i][j];
return sum;
}
int s=LONG_LONG_MAX;
if(cnt%2==0){
s=LONG_LONG_MIN;
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++){
if(vis[i][j])continue;
vis[i][j]=1;
int ab=dfs(cnt+1);
if(ab!=LONG_LONG_MAX)s=max(s,ab);
vis[i][j]=0;
}
}else{
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++){
if(vis[i][j])continue;
vis[i][j]=-1;
int ab=dfs(cnt+1);
if(ab!=LONG_LONG_MIN)s=min(s,ab);
vis[i][j]=0;
}
}return s;
}
signed main(){
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)cin>>a[i][j],tj+=a[i][j];
int ans=dfs(0);
if(ans>tj-ans)cout<<"Takahashi";
else cout<<"Aoki";
return 0;
}
AC 26 个点,WA 6 个点