#include <bits/stdc++.h>
using namespace std;
long long  dp[100000001];
long long p=1000000007;
long long pow1(long long i,long long n){
  long long c; 
  if(n==1)
    return i;
  else{
    c=pow1(i,n/2);
    if(n%2==0){
      c*=c;
      c%=p;
    }
    else{
      c*=c;
      c%=p;
      c=c*i;
      c%=p;
    }
  }
  return c;
}
int main() {
  long long n,k,k1,k2;
  cin>>n>>k;
  for(long long i=k;i>=1;i--){
    dp[i]=pow1(k/i,n);
    dp[i]%=p;
    for(long long g=2*i;g<=k;g+=i)
      dp[i]-=dp[g];
    dp[i]%=p;
  }
  long long sum=0;
  for(long long i=1;i<=k;i++){
    sum+=i*dp[i];
    sum%=p;
  }
  cout<<sum;
}