#include #include #include using namespace atcoder; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000 int N[4]; int S = 0; int dp[14][14][14][14][53]; int get(int a,int b,int c,int d,int e){ if(dp[a][b][c][d][e]!=-1)return dp[a][b][c][d][e]; int me = e,opp = S-a-b-c-d-e; int ret = -Inf; for(int i=1;i<=3;i++){ if(i<=a){ int temp = me - opp + i; int ee = opp; if(a-i==0){ temp += ((opp+1)/2)*2; ee = (ee+1)/2; } temp -= get(a-i,b,c,d,ee); ret = max(ret,temp); } } for(int i=1;i<=3;i++){ if(i<=b){ int temp = me - opp + i; int ee = opp; if(b-i==0){ temp += ((opp+1)/2)*2; ee = (ee+1)/2; } temp -= get(a,b-i,c,d,ee); ret = max(ret,temp); } } for(int i=1;i<=3;i++){ if(i<=c){ int temp = me - opp + i; int ee = opp; if(c-i==0){ temp += ((opp+1)/2)*2; ee = (ee+1)/2; } temp -= get(a,b,c-i,d,ee); ret = max(ret,temp); } } for(int i=1;i<=3;i++){ if(i<=d){ int temp = me - opp + i; int ee = opp; if(d-i==0){ temp += ((opp+1)/2)*2; ee = (ee+1)/2; } temp -= get(a,b,c,d-i,ee); ret = max(ret,temp); } } dp[a][b][c][d][e] = ret; return ret; } int main(){ rep(i,4){ cin>>N[i]; S += N[i]; } rep(i,14){ rep(j,14){ rep(k,14){ rep(l,14){ rep(ll,53)dp[i][j][k][l][ll] = -1; } } } } int Ans = get(N[0],N[1],N[2],N[3],0); if(Ans == 0)cout<<"Draw"<0)cout<<"Taro"<