#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define REP(i,b,n) for(int i=b;i<(int)n;i++)
#define rep(i,n) REP(i,0,n)
#define all(obj) (obj).begin(),(obj).end()
const int mod = 1e9+7;
ll cnt[100005];

ll pp(ll i,ll j){
    ll res=1;
    while(j>0){
        if(j&1)res=res*i%mod;
        i=i*i%mod;
        j>>=1;
    }
    return res;
}
int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    int n,k;
    cin>>n>>k;
    rep(i,k)cnt[i]=0;
    for(int i=k;i>0;i--){
        ll t=k/i;
        cnt[i]=pp(t,n);
        int ii=i*2;
        while(ii<=k){
            cnt[i]-=cnt[ii];
            ii+=i;
        }
    }
    ll ans=0;
    for(int i=1;i<=k;i++){
        ans+=i*cnt[i];
        ans%=mod;
    }
    cout<<ans<<endl;
    return 0;
}
