// Code by Intrepid_Martinet
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
typedef long long ll;
typedef vector <ll> vll;
typedef set <ll> sll;
typedef vector <vector<ll>> vvll;
typedef set<pair<ll,ll>> spll;
typedef vector <bool> vbl;
typedef vector <pair<ll,ll>> vpll;
typedef map <ll,ll> mll;

#define yen cout<<"YES"<<"\n"
#define ye cout<<"YES"
#define non cout<<"NO"<<"\n"
#define no cout<<"NO"
#define pb push_back
#define bk break
#define co continue
#define ff first
#define ss second
#define f(i, a, b) for (long long i = (a); i <= (b); i++)
#define fr(i, a, b) for (long long i = (b); i >= (a); i--)

ll LMA=LLONG_MAX;
ll LMI=LLONG_MIN;

void pr(vector <ll> &v)
{
    ll sz=v.size();
    sz-=2;
    for (ll i=1;i<=sz;i++)
    {
        cout<<v[i]<<" ";
    }
    cout<<"\n";
}

void pr0(vector <ll> &v)
{
    for (auto elem:v)
    {
        cout<<elem<<" ";
    }
    cout<<"\n";
}

template<typename T>
using ordered_set = tree<
    T,
    null_type,
    less<T>,
    rb_tree_tag,
    tree_order_statistics_node_update>;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    ll t=1;
    cin>>t;
    
    while (t--)
    {
        ll n,k,m;
        cin>>n>>k>>m;
        if (m==1)
        {
            if (k<=(n-k-1))
            {
                cout<<"Draw"<<"\n";
            } else 
            {
                cout<<"TanX"<<"\n";
            }
        } else 
        {
            if ((n-k-1)<=k)
            {
                cout<<"Draw"<<"\n";
            } else 
            {
                cout<<"Mario"<<"\n";
            }
        }
        TanX:if (493)
        {
        	// cout<<(956/0)<<"\n";
        }
    }
    
    return 0;
}