Problem

One day, mo3tthi and tubuann decided to play a game with magic pockets and biscuits.
Now there are $ K $ pockets, numbered $ 1,2, \ ldots, K $.
The capacity of the $ i $ th pocket is $ M_i $, which initially contains $ N_i $ biscuits.
mo3tthi and tubuann start with mo3tthi and perform the following series of operations alternately.


* Choose one pocket.
* Perform one of the following operations only once. However, if the number of biscuits in the pocket selected as a result of the operation exceeds the capacity of the pocket, the operation cannot be performed.
* Stroking the selected pocket. Magical power increases the number of biscuits in your chosen pocket by $ 1 $.
* Hit the selected pocket. The number of biscuits in the pocket chosen by magical power is doubled by $ 2 $.



The game ends when you can't operate it, the person who can't operate loses, and the person who doesn't can win.
You, a friend of mo3tthi, were asked by mo3tthi in advance if you could decide if you could win this game.
For mo3tthi, make a program to determine if mo3tthi can definitely win this game.

Constraints

The input satisfies the following conditions.

* $ 1 \ leq K \ leq 10 ^ 5 $
* $ 1 \ leq N_i \ leq M_i \ leq 10 ^ {18} $
* All inputs are integers

Input

The input is given in the following format.


$ K $
$ N_1 $ $ M_1 $
$ \ vdots $
$ N_K $ $ M_K $


Output

When mo3tthi acts optimally, "mo3tthi" is output on one line if he can win, and "tubuann" is output otherwise.

Examples

Input

1
2 4


Output

mo3tthi


Input

2
2 3
3 8


Output

tubuann


Input

10
2 8
5 9
7 20
8 41
23 48
90 112
4 5
7 7
2344 8923
1 29


Output

mo3tthi
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int grundy(ll n, ll m){
    if(n==1){
        return grundy(2,m) == 0;
    }
    ll l = m/2, r = m, cnt = 0, ev = m%2, od = (m+1)%2;
    while(l >= n){
        r = l;
        l >>= 1;
        cnt++;
        if(r%2){
            if(ev == 0){
                od = 1;
                ev = 2;
            }
            else if(ev == 1){
                od = 0;
                ev = 2;
            }
            else{
                od = 0;
                ev = 1;
            }
        }
        else{
            bool used[3]{};
            int pev = ev;
            used[pev] = true;
            used[od] = true;
            for(int i=0;i<3;i++){
                if(!used[i]){
                    ev = i;
                    break;
                }
            }
            fill(used, used+3, false);
            used[pev] = true;
            used[ev] = true;
            for(int i=0;i<3;i++){
                if(!used[i]){
                    od = i;
                    break;
                }
            }
        }
    }
    return (n%2 ? od : ev);
}

int main(){
    ll k, allxor = 0;
    cin >> k;

    for(int i=0;i<k;i++){
        ll n, m;
        cin >> n >> m;
        allxor ^= grundy(n, m);
    }
    if(allxor == 0){
        cout << "tubuann" << endl;
    }
    else{
        cout << "mo3tthi" << endl;
    }
    return 0;
}
