#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=5e7+10,maxm=3000000;
int a[maxn],prime[maxm];
ll num[maxn],f[maxn];
bool is_not_prime[maxn];
int n,mod,tot;
ll ans;
void Solve(){
scanf("%d%d",&n,&mod);
is_not_prime[0]=is_not_prime[1]=f[1]=1;
for(int i=2;i<=n;++i)
{
if(!is_not_prime[i])
{
prime[++tot]=i;
f[i]=num[i]=i+1;
}
for(int j=1;j<=tot&&prime[j]*i<=n;++j)
{
is_not_prime[i*prime[j]]=1;
if(i%prime[j]!=0)
{
f[i*prime[j]]=f[i]*f[prime[j]];
num[i*prime[j]]=prime[j]+1;
}
else
{
f[i*prime[j]]=f[i]/num[i]*(num[i]*prime[j]+1);
num[i*prime[j]]*=prime[j];
num[i*prime[j]]++;
break;
}
}
}
}
int main(){
Solve();
return 0;
}
rt