#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long long int modpow(long long int p, long long int q, long long int mod)
{
  long long int i;
  long long int r=1;
  for(i=0;i<q;i++) r=(r*p)%mod;
  return r;
}

long long int modpro(long long int p, long long int q, long long int mod)
{
  long long int i;
  long long int r=0;
  for(i=0;i<q;i++) r=(r+p)%mod;
  return r;
}

int main(void)
{
  long long int sum[100001]={};
  long long int mod = 1000000007;
  long long int ans = 0;
  long long int n,k,i,j;

  scanf("%lld %lld",&n,&k);

  for(i=k;i>0;i--)
  {
    sum[i]=modpow(k/i,n,mod);
    for(j=2*i;j<=k;j=j+i) sum[i]=(sum[i]-sum[j]+mod)%mod;
    ans=(ans+i*sum[i])%mod;
  }

  printf("%lld\n",ans);

  return 0;
}