//#include #include #include #include #include #include #include #include #include #define INF INT_MAX / 2 using namespace std; typedef pair P; typedef long long ll; int memo[2][14][14][14][14]; bool dfs(int t,int n1,int n2,int n3,int n4){ if(memo[t%2][n1][n2][n3][n4] != 0){ if(memo[t%2][n1][n2][n3][n4] == 1)return true; else return false; } if(n1+n2+n3+n4==0)return t%2==0?false:true; bool ret; if(t%2==0){ ret = false; for(int i=1;i<=3;i++){ if(n1-i>=0)ret |= dfs(t+1,n1-i,n2,n3,n4); if(n2-i>=0)ret |= dfs(t+1,n1,n2-i,n3,n4); if(n3-i>=0)ret |= dfs(t+1,n1,n2,n3-i,n4); if(n4-i>=0)ret |= dfs(t+1,n1,n2,n3,n4-i); } } else{ ret = true; for(int i=1;i<=3;i++){ if(n1-i>=0)ret &= dfs(t+1,n1-i,n2,n3,n4); if(n2-i>=0)ret &= dfs(t+1,n1,n2-i,n3,n4); if(n3-i>=0)ret &= dfs(t+1,n1,n2,n3-i,n4); if(n4-i>=0)ret &= dfs(t+1,n1,n2,n3,n4-i); } } if(ret)memo[t%2][n1][n2][n3][n4] = 1; else memo[t%2][n1][n2][n3][n4] = -1; return ret; } int main(void) { int n1,n2,n3,n4; cin >> n1 >> n2 >> n3 >> n4; if(dfs(0,n1,n2,n3,n4))cout << "Taro" << endl; else cout << "Jiro" << endl; } // command shift d duplicate // command ctrl 上下 // command D // command caps G → '' "" // vector> a(N,vector(M,-1));