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

typedef long long ll;
typedef unsigned long long ull;

mt19937 rand_mt;
const int XYMAX = 10000;

class xyr{
public:
    int x;
    int y;
    int r;
    int index;

    int a;
    int b;
    int c;
    int d;

    void print(){
        cout << a << " "
             << b << " "
             << c << " "
             << d << endl;
    }

    void read(){
        cin >> x >> y >> r;
    }

    void initialize(){
        a = x;
        b = y;
        c = x+1;
        d = y+1;
    }

    bool overlap(xyr& other){
        if(a < other.c && c > other.a && d > other.b && b < other.d) return true;
        return false;
    }

    bool isValid(){
        if(a < 0 || a >= c)     return false;
        if(b < 0 || b >= d)     return false;
        if(c < a || c >= XYMAX) return false;
        if(d < b || d >= XYMAX) return false;
        return true;
    }

    void update_1();
    void update_2();
};

void xyr::update_1(){
    auto i_change = rand_mt() % 4;
    if     (i_change == 0){ a--;}
    else if(i_change == 1){ b--;}
    else if(i_change == 2){ c++;}
    else if(i_change == 3){ d++;}
}

void xyr::update_2(){
    auto i_change = rand_mt() % 4;
    if     (i_change == 0){ a = rand_mt() % a;}
    else if(i_change == 1){ b = rand_mt() % b;}
    else if(i_change == 2){ c = rand_mt() % c;}
    else if(i_change == 3){ d = rand_mt() % d;}
}

int main()
{
    // Input
    int n;
    cin >> n;
    vector<xyr> XYR(n);
    for(int i=0; i<n; i++){
        XYR[i].read();
        XYR[i].index = i;
        XYR[i].initialize();
    }
    // sort(XYR.begin(), XYR.end(), [](xyr& a, xyr& b){return a.r < b.r;});

    for(int i_try=0; i_try<100000; i_try++){
        auto& p = XYR[i_try%n];
        auto prev = p;
        p.update_1();
        bool isValid = p.isValid();
        for(int j=0; j<n && isValid; j++){
            if(p.index == XYR[j].index) continue;
            if(p.overlap(XYR[j])) isValid = false;
        }
        if(!isValid) p = prev;
    }


    // Output
    if (1){
    sort(XYR.begin(), XYR.end(), [](xyr& a, xyr& b){return a.index < b.index;});
    for(int i=0;i<n;i++){
        XYR[i].print();
    }
    }

    return 0;
}

#include<bits/stdc++.h>
#define w(x)            int x; cin>>x; for(int tc=1;tc<=x;tc++)
#define trace(x) 		cerr<<#x<<": "<<x<<" "<<endl;
#define FIO             ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define int long long
#define pb push_back
#define pqg priority_queue<int>
#define pqs priority_queue<int,vector<int>,greater<int>>
#define mpii map<int,int>
#define endl "\n"
#define YES cout<<"YES\n";
#define Yes cout<<"Yes\n";
#define NO cout<<"NO\n";
#define No cout<<"No\n";
#define mod 1000000007
#define inp(x) cin>>x;


using namespace std;
void solve(int tc) {
	int a, b, c;
	cin >> a >> b >> c;
	int ans;
	if (c == 0) {
		if (a > b) {
			ans = 1;
		} else
			ans = 0;
	} else {
		if (b > a) {
			ans = 0;
		} else {
			ans = 1;
		}
	}
	if (ans == 1) {
		cout << "Takahashi" << endl;
	} else {
		cout << "Aoki" << endl;
	}

}

int32_t main() {
	FIO
#ifndef ONLINE_JUDGE
	freopen("in.txt", "r", stdin);
	freopen("out.txt", "w", stdout);
#endif
	// w(x){
	solve(1);
	// }
	return 0;
}