#include <bits/stdc++.h>
using namespace std;
template <typename T>
T maxm(T a, T b) {
  return (a > b) ? a : b;
}
template <typename T>
T minm(T a, T b) {
  return (a < b) ? a : b;
}
template <typename T>
T expo(T e, T n) {
  T x = 1, p = e;
  while (n) {
    if (n & 1) x = x * p;
    p = p * p;
    n >>= 1;
  }
  return x;
}
template <typename T>
T power(T e, T n, T m) {
  T x = 1, p = e;
  while (n) {
    if (n & 1) x = (x * p) % m;
    p = (p * p) % m;
    n >>= 1;
  }
  return x;
}
template <typename T>
T InverseEuler(T a, T m) {
  return (a == 1 ? 1 : power(a, m - 2, m));
}
template <typename T>
T lcm(T a, T b) {
  return (a * (b / __gcd(a, b)));
}
bool prime[100005];
void SieveOfEratosthenes(long long n) {
  memset(prime, true, sizeof(prime));
  for (long long p = 2; p * p <= n; p++) {
    if (prime[p] == true) {
      for (long long i = p * 2; i <= n; i += p) prime[i] = false;
    }
  }
}
bool _factor_other_than_2_and_3(long long n) {
  while (n % 2 == 0) {
    n /= 2;
  }
  while (n % 3 == 0) {
    n /= 3;
  }
  if (n > 3) {
    return false;
  } else
    return true;
}
long long canBeDivivdedPrime(long long n, long long k) {
  for (long long i = 2; i * i <= n; i++) {
    if (n % i == 0) {
      if ((n / i) >= k) return n / i;
    }
  }
  return -1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  long long n;
  cin >> n;
  long long m, k;
  cin >> m >> k;
  if (k > 1) {
    if (canBeDivivdedPrime(m, k) == -1) {
      cout << "Marsel" << endl;
    } else {
      long long cuts = 1;
      long long expr = m / canBeDivivdedPrime(m, k);
      if ((cuts * n) % 2 != 0) {
        cout << "Timur" << endl;
      } else
        cout << "Marsel" << endl;
    }
  } else {
    long long ans = n;
    if (m > 1) {
      if (ans % 2 != 0) {
        cout << "Timur" << endl;
      } else
        cout << "Marsel" << endl;
    } else {
      cout << "Marsel" << endl;
    }
  }
  return 0;
}
