#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<n;i++)
using namespace std;
typedef long long ll;
typedef pair<int,int>P;

const int MOD=1000000007;
//~ const int MOD=998244353;
const int INF=0x3f3f3f3f;
const ll INFL=0x3f3f3f3f3f3f3f3f;

ll ppow(ll a,ll b){
	a%=MOD;
	ll res=1;
	while(b){
		if(b&1)res=(res*a)%MOD;
		a=(a*a)%MOD;
		b>>=1;
	}
	return res;
}

ll ans[200000];

int main(){
	int n,K;cin>>n>>K;
	for(ll i=1;i<=K;i++){
		ll cnt=K/i;
		ans[i]=ppow(cnt,n);
	}
	ll res=0;
	for(int i=K;i>=1;i--){
		for(int j=i*2;j<=K;j+=i){
			(ans[i]+=MOD-ans[j])%=MOD;
		}
		(res+=i*(ll)(ans[i]))%=MOD;
	}
	cout<<res<<endl;
}