#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;

//#define ACL
#ifdef ACL
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
#if __has_include("acl-all.h")
#include "acl-all.h" //on Wandbox
using namespace atcoder;
#endif
#endif //#ifdef ACL

typedef long double ld;
typedef long long int ll;
typedef unsigned long long int ull;
typedef vector<int> vi;
typedef vector<char> vc;
typedef vector<bool> vb;
typedef vector<double> vd;
typedef vector<string> vs;
typedef vector<ll> vll;
typedef vector<pair<ll, ll> > vpll;
typedef vector<vector<int> > vvi;
typedef vector<vector<char> > vvc;
typedef vector<vector<string> > vvs;
typedef vector<vector<ll> > vvll;
typedef vector<vector<bool> > vvb;
typedef pair<ll, ll> pll;

#define rep(i, n) for (int i = 0; i < int(n); ++i)
#define rrep(i, n) for (int i = 1; i <= int(n); ++i)
#define irep(it, stl) for (auto it = stl.begin(); it != stl.end(); it++)
#define drep(i, n) for (int i = int(n)-1; i >= 0; --i)

#define MES(a) MES2 a
#define MES2(a0,a1,a2,a3,a4,x,...) x
#define mes_1(x1) cout<<x1<<endl
#define mes_2(x1,x2) cout<<x1<<" "<<x2<<endl
#define mes_3(x1,x2,x3) cout<<x1<<" "<<x2<<" "<<x3<<endl
#define mes_4(x1,x2,x3,x4) cout<<x1<<" "<<x2<<" "<<x3<<" "<<x4<<endl
#define mes_5(x1,x2,x3,x4,x5) cout<<x1<<" "<<x2<<" "<<x3<<" "<<x4<<" "<<x5<<endl
#define mes(...) CHOOSE((__VA_ARGS__,mes_5,mes_4,mes_3,mes_2,mes_1,~))(__VA_ARGS__)

#define CHOOSE(a) CHOOSE2 a
#define CHOOSE2(a0,a1,a2,a3,a4,x,...) x
#define debug_1(x1) cout<<#x1<<": "<<x1<<endl
#define debug_2(x1,x2) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<endl
#define debug_3(x1,x2,x3) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<endl
#define debug_4(x1,x2,x3,x4) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<", "#x4<<": "<<x4<<endl
#define debug_5(x1,x2,x3,x4,x5) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<", "#x4<<": "<<x4<<", "#x5<<": "<<x5<<endl
#define debug(...) CHOOSE((__VA_ARGS__,debug_5,debug_4,debug_3,debug_2,debug_1,~))(__VA_ARGS__)

#define Ynmes(a) (a) ? mes("Yes") : mes("No")
#define YNmes(a) (a) ? mes("YES") : mes("NO")
#define re0 return 0
#define mp(p, q) make_pair(p, q)
#define pb(n) push_back(n)
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define Sort(a) sort(a.begin(), a.end())
#define rSort(a) sort(a.rbegin(), a.rend())
#define Rev(a) reverse(a.begin(), a.end())

int dx[8] = { 1, 0, -1, 0, 1, -1, -1, 1 };
int dy[8] = { 0, 1, 0, -1, 1, 1, -1, -1 };
template <class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template <class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
struct io { io() { ios::sync_with_stdio(false); cin.tie(0); } };
const int INF = INT_MAX;
const ll LLINF = 1LL << 60;
const ll MOD = 1000000007;
const double EPS = 1e-9;

ll fact_mod(ll n, ll mod) {
    ll f = 1; for (ll i = 2; i <= n; i++) f = f * (i % mod) % mod;
    return f;
}

ll modpow(ll x, ll n, ll mod) {
    if(n == 0) return 1;
    ll res = modpow((x * x) % mod, n / 2 , mod);
    if(n & 1) res = (res * x) % mod;
    return res;
}

ll modncr(ll n, ll r, ll mod) {
    if(r > n-r) r = n-r;
    if(r == 0) return 1;
    ll a = 1;
    rep(i, r) a = a * ((n-i) % mod) % mod;
    ll b = modpow(fact_mod(r, mod), mod-2, mod);
    return (a % mod) * (b % mod) % mod;
}


signed main() {
	ll n;
	string s, t;
	cin >> n >> s >> t;
	
	ll r = 0;
	vll a(n+1, 0), b(n+1, 0);
	
	rep(i, n) {
		a[i+1] = a[i] ^ (s[i]-'0');
		b[i+1] = b[i] ^ (t[i]-'0');
	}
	
	ll sc = 0;
	for(ll tc = 0; tc <= n; tc++) {
		chmax(sc, tc);
		if (a[sc] == b[tc]) continue;
		while (sc+1 <= n && a[sc] == a[sc+1]) {
			sc++;
		}
		
		if (sc == n) {
			mes(-1);
			re0;
		}
		
		sc++;
		
		r += sc-tc;
	}
	
	
	mes(r);
	
	
	
	
	
}

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

bool solve() {
    ll N;
    cin >> N;
    string S, X;
    cin >> S >> X;
    vector<vector<int>> win(N+1, vector<int>(7)); // 1:win
    win[N][0] = 1;
    ll b = 1;
    for ( int i = N-1; i >= 0; i-- ) {
        ll c = S[i] - '0';
        if ( X[i] == 'T' ) {
            for ( int j = 0; j < 7; j++ ) {
                if ( win[i+1][j] == 1 ) {
                    win[i][j] = 1;
                }
                int jp = (j + 7 - (c * b)%7 ) % 7;
                if ( win[i+1][jp] == 1 ) {
                    win[i][j] = 1;
                }
            }
        } else {
            for ( int j = 0; j < 7; j++ ) {
                int w = 1;
                if ( win[i+1][j] == 0 ) {
                    w = 0;
                }
                int jp = (j + 7 - (c * b)%7 ) % 7;
                if ( win[i+1][jp] == 0 ) {
                    w = 0;
                }
                win[i][j] = w;
            }
        }
        b = b * 10 % 7;
    }
    // bool ans;
    // if ( X[0] == 'T' ) {
    //     ans = false;
    //     for ( int i = 0; i < 7; i++ ) {
    //         if ( win[0][i] ) ans = true;
    //     }
    // } else {
    //     ans = true;
    //     for ( int i = 0; i < 7; i++ ) {
    //         if ( !win[0][i] ) ans = false;
    //     }
    // }
    
    return win[0][0]==1;
}

int main() {
    string ans = solve() ? "Takahashi" : "Aoki";
    cout << ans << "\n";
    return 0;
}