#include <stdio.h>
#define mod(n) ((n)%1000000007)

int mypow(int a, int n){ // a^n
  int ans = 1;
  for(int i=0; i<n; i++)
    ans *= a;
  return ans;
}

int main(){
  int n, k;  scanf("%d%d", &n, &k);

  int gcdn[100001]; // 1~k
  int d[100001];  // 1~k

  for(int i=1; i<=k; i++)
    d[i] = mypow(k/i, n);

  long long int ans = 0;
  
  for(int i=k; i>=1; i--){
    gcdn[i] = d[i];
    for(int j=2; i*j<=k; j++)
      gcdn[i] -= gcdn[i*j];
    ans = ans + gcdn[i]*i;
    ans = mod(ans);
  }

  printf("%lld\n", ans);
  return 0;
}
    
