#include "bits/stdc++.h"
using namespace std;

const long long INF = 1e9;
int main(){
    int h, w;
    cin >> h >> w;
    vector<vector<char>> a(h, vector<char>(w));
    for(int i = 0;i < h;i++){
        for(int j = 0;j < w;j++){
            cin >> a[i][j];
        }
    }

    vector<vector<int>> dp(h, vector<int>(w));
    for(int i = 0;i < h;i++){
        for(int j = 0;j < w;j++){
            dp[i][j] = ((i + j) % 2 == 1 ? INF : -INF);
        }
    }

    dp[h - 1][w - 1] = 0;
    for(int i = h - 1;i >= 0;i--){
        for(int j = w - 1;j >= 0;j--){
            int v = (a[i][j] == '+' ? 1 : -1);
            if ((i + j) % 2 == 0){
                if (i - 1 >= 0) {
                    dp[i - 1][j] = min(dp[i - 1][j], dp[i][j] - v);
                }
                if (j - 1 >= 0){
                    dp[i][j - 1] = min(dp[i][j - 1], dp[i][j] - v);
                }
            } else {
                if (i - 1 >= 0){
                    dp[i - 1][j] = max(dp[i - 1][j], dp[i][j] + v);
                }
                if (j - 1 >= 0){
                    dp[i][j - 1] = max(dp[i][j - 1], dp[i][j] + v);
                }
            }
        }
    }
    

    if (dp[0][0] > 0) cout << "Takahashi" << endl;
    else if (dp[0][0] == 0) cout << "Draw" << endl;
    else cout << "Aoki" << endl;
}
#include<ctime>
#include<cstdio>
#include<cctype>
#include<algorithm>
using namespace std;
const int N=2e3+7;
int read() {
	char c;
	int x=0,f=1;
	while(!isdigit(c=getchar()))
		f-=2*(c=='-');
	while (isdigit(c)){
		x=x*10+(c-48)*f;
		c=getchar();
	}
	return x;
}
char c[N][N];
int h,w,f[N][N];
int main() {
	#ifndef ONLINE_JUDGE
	freopen("D.in","r",stdin);
	freopen("D.out","w",stdout);
	#endif
	clock_t t1=clock();
	//--------
	h=read();
	w=read();
	for(int i=1;i<=h;++i)
		scanf("%s",c[i]+1);
	for(int i=w-1;i;--i){
		int fl=1-2*((h+i)&1);
		if(c[h][i+1]=='+')
			f[h][i]=f[h][i+1]+fl;
		else
			f[h][i]=f[h][i+1]-fl;
	}
	for(int i=h-1;i;--i){
		int fl=1-2*((w+i)&1);
		if(c[i+1][w]=='+')
			f[i][w]=f[i+1][w]+fl;
		else
			f[i][w]=f[i+1][w]-fl;
	}
	for(int i=h-1;i;--i)
	for(int j=w-1;j;--j){
		if((i+j)&1){
			int fa=1-2*(c[i][j+1]=='+');
			int fb=1-2*(c[i+1][j]=='+');
			f[i][j]=min(f[i][j+1]+fa,f[i+1][j]+fb);
		}
		else{
			int fa=1-2*(c[i][j+1]=='-');
			int fb=1-2*(c[i+1][j]=='-');
			f[i][j]=max(f[i][j+1]+fa,f[i+1][j]+fb);
		}
	}
	if(f[1][1]>0)
		puts("Takahashi");
	else if(f[1][1]<0)
		puts("Aoki");
	else
		puts("Draw");
	//--------
	clock_t t2=clock();
	fprintf(stderr,"time:%0.3lfs",1.0*(t2-t1)/CLOCKS_PER_SEC);
	return 0;
}