#include <bits/stdc++.h>
using namespace std;
const int p = 1e9 + 7;
long long euler(long long n) {
  long long ans = n;
  for (int i = 2; 1LL * i * i <= n; i++) {
    if (n % i == 0) {
      ans = ans / i * (i - 1);
      while (n % i == 0) n /= i;
    }
  }
  if (n > 1) ans = ans / n * (n - 1);
  return ans;
}
long long fun(long long n, long long pos) {
  if (n == 1) return 1;
  long long x = euler(n);
  if (pos == 1) return x;
  return fun(x, pos - 1);
}
int main() {
  long long n, k;
  cin >> n >> k;
  long long pos = k + 1 >> 1;
  printf("%lld\n", fun(n, pos) % p);
}
