#include <bits/stdc++.h>
using namespace std;
const int N = 100100;
const int mod = 1000000007;
int n, K, phi[N], pr[N], cnt;
long long ans[N], pre[N];
int ksm(long long a, int b, int c = 1) {
  for (; b; b /= 2, a = a * a % mod)
    if (b & 1) c = c * a % mod;
  return c;
}
void Init() {
  phi[1] = pre[1] = 1;
  for (int i = 2; i <= n; ++i) {
    if (!phi[i]) {
      pr[++cnt] = i;
      phi[i] = i - 1;
    }
    pre[i] = pre[i - 1] + phi[i];
    for (int j = 1; j <= cnt && i * pr[j] <= n; ++j)
      if (i % pr[j] == 0) {
        phi[i * pr[j]] = phi[i] * pr[j];
        break;
      } else
        phi[i * pr[j]] = phi[i] * phi[pr[j]];
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> K;
  Init();
  for (int i = 1; i < n; ++i) {
    ans[i] += pre[(n + i - 1) / i] - 1 + (n - i - 1);
    int u = (n + i - 1) / i, v = u * i - n;
    if (v) ans[v] -= phi[u];
  }
  int ret = 0;
  for (int i = n; i >= 0; --i) ret = ((long long)ret * K + ans[i]) % mod;
  ret = ksm(K, mod - 1 - n, ret);
  cout << ret << '\n';
  return 0;
}
