#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int mins[maxn];
int maxs[maxn];
int counts[maxn];
bool f[maxn];
int prime[maxn],tot;
void euler(int n)
{
f[0]=f[1]=1;
for(int i=1;i<=n;i++){
if(!f[i]){
prime[++tot]=i;
mins[i]=maxs[i]=i;
counts[i]=1;
}
for(int j=1;j<=tot&&i*prime[j]<=n;j++){
f[i*prime[j]]=1;
mins[i*prime[j]]=min(prime[j],mins[i]);
maxs[i*prime[j]]=max(prime[j],maxs[i]);
if(i%prime[j]==0){
counts[i*prime[j]]=counts[i];
}else{
counts[i*prime[j]]=counts[i]+1;
}
if(i%prime[j]==0) break;
}
}
}
int main()
{
ios::sync_with_stdio();cin.tie();cout.tie();
int n;
cin>>n;
euler(n);
for(int i=1;i<=n;i++){
cout<<i<<" : "<<mins[i]<<" "<<maxs[i]<<" "<<counts[i]<<"\n";
}
return 0;
}