Two beavers, Timur and Marsel, play the following game.

There are n logs, each of exactly m meters in length. The beavers move in turns. For each move a beaver chooses a log and gnaws it into some number (more than one) of equal parts, the length of each one is expressed by an integer and is no less than k meters. Each resulting part is also a log which can be gnawed in future by any beaver. The beaver that can't make a move loses. Thus, the other beaver wins.

Timur makes the first move. The players play in the optimal way. Determine the winner.

Input

The first line contains three integers n, m, k (1 ≤ n, m, k ≤ 109).

Output

Print "Timur", if Timur wins, or "Marsel", if Marsel wins. You should print everything without the quotes. 

Examples

Input

1 15 4


Output

Timur

Input

4 9 5


Output

Marsel

Note

In the first sample the beavers only have one log, of 15 meters in length. Timur moves first. The only move he can do is to split the log into 3 parts each 5 meters in length. Then Marsel moves but he can't split any of the resulting logs, as k = 4. Thus, the winner is Timur.

In the second example the beavers have 4 logs 9 meters in length. Timur can't split any of them, so that the resulting parts possessed the length of not less than 5 meters, that's why he loses instantly.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Saransh
 */
import java.io.*;
import java.util.*;
import java.math.*;
import java.lang.*;


public class Main {

    /**
     * @param args the command line arguments
     */
    static double sqrt3=Math.sqrt(3);
    public static void main(String[] args) {
        // TODO code application logic here
        try
        {
            Scanner pd=new Scanner(System.in);
            int n=pd.nextInt();
            int m=pd.nextInt();
            int k=pd.nextInt();
            int min=Integer.MAX_VALUE;
            for(int i=1;i*i<=m;i++)
            {
                if(m%i==0)
                {
                    int fact1=i;
                    int fact2=m/i;
                    if(fact1>=k&&fact1!=m)
                    {
                        min=Math.min(fact1,min);
                    }
                    if(fact2>=k&&fact2!=m)
                    {
                        min=Math.min(fact2,min);
                    }
                }
            }
            //System.out.println(m);
            if(min==Integer.MAX_VALUE)
                System.out.println("Marsel");
            else
            {
                if(n%2==0)
                    System.out.println("Marsel");
                else
                    System.out.println("Timur");
            }
            
        }
        catch(Exception e)
        {e.printStackTrace();}

    }
    public static int count(String a)
    {
        int count=0;
        String arr="aeiou";
        for(int i=0;i<a.length();i++)
            for(int j=0;j<5;j++)
                if(a.charAt(i)==arr.charAt(j))
                    count++;
        return count;
    }

}


class Parserdoubt
    {
       final private int BUFFER_SIZE = 1 << 17;

       private DataInputStream din;
       private byte[] buffer;
       private int bufferPointer, bytesRead;

       public Parserdoubt(InputStream in)
       {
          din = new DataInputStream(in);
          buffer = new byte[BUFFER_SIZE];
          bufferPointer = bytesRead = 0;
       }
       public String nextString() throws Exception
       {
           StringBuffer sb=new StringBuffer("");
           byte c = read();
           while (c <= ' ') c = read();
           do
           {
               sb.append((char)c);
               c=read();
           }while(c>' ');
           return sb.toString();
       }
       public char nextChar() throws Exception
       {
           byte c=read();
           while(c<=' ') c= read();
           return (char)c;
       }
       public int nextInt() throws Exception
       {
          int ret = 0;
          byte c = read();
          while (c <= ' ') c = read();
          boolean neg = c == '-';
          if (neg) c = read();
          do
          {
              ret = ret * 10 + c - '0';
             c = read();
          } while (c > ' ');
          if (neg) return -ret;
          return ret;
       }
       public long nextLong() throws Exception
       {
          long ret = 0;
          byte c = read();
          while (c <= ' ') c = read();
          boolean neg = c == '-';
          if (neg) c = read();
          do
          {
              ret = ret * 10 + c - '0';
             c = read();
          } while (c > ' ');
          if (neg) return -ret;
          return ret;
       }
       private void fillBuffer() throws Exception
       {
          bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
          if (bytesRead == -1) buffer[0] = -1;
       }

       private byte read() throws Exception
       {
          if (bufferPointer == bytesRead) fillBuffer();
          return buffer[bufferPointer++];
       }
    }