#include <bits/stdc++.h>
using namespace std;
vector<int> divit;
int k, n, m, max_turn = 0;
int memo[32000][100];
int win(int l, int turn, int p) {
  max_turn = max(max_turn, turn);
  if (divit[l] <= k) {
    return memo[l][turn] = (p + 1) % 2;
  }
  if (memo[l][turn] != -1) return memo[l][turn];
  for (int i = divit.size() - 1; i >= 1; i--) {
    if (divit[l] % divit[i] != 0) continue;
    int t = divit[l] / divit[i];
    int ele = lower_bound(divit.begin(), divit.end(), t) - divit.begin();
    if (t < k)
      memo[l][turn] = (memo[l][turn] == -1)
                          ? win(ele, turn + 1, p)
                          : min(win(ele, turn + 1, p), memo[l][turn]);
    else {
      p += n % 2;
      p %= 2;
      memo[l][turn] = (memo[l][turn] == -1)
                          ? win(ele, turn + 1, p)
                          : min(win(ele, turn + 1, p), memo[l][turn]);
    }
    if (memo[l][turn] == 0) return 0;
  }
  return memo[l][turn];
}
int main() {
  while (scanf("%d %d %d", &n, &m, &k) != EOF) {
    if (m <= k) {
      printf("Marsel\n");
      continue;
    }
    divit.clear();
    divit.push_back(1);
    memset(memo, -1, sizeof memo);
    for (int i = 2; i <= (sqrt(m) + 0.001); i++)
      if (m % i == 0) divit.push_back(i);
    int s = divit.size();
    if (m == (m / divit[s - 1]) * (m / divit[s - 1])) s--;
    for (int i = s - 1; i >= 0; i--) divit.push_back(m / divit[i]);
    if (win(divit.size() - 1, 1, 0))
      printf("Marsel\n");
    else
      printf("Timur\n");
  }
  return 0;
}
