#include<iostream>
#include<cstring>
#include<cmath>
#define INF 0x3f3f3f3f
using namespace std;
int g[2022][2022];
int vis[2022];
int dist[2022];
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int lcm(int a,int b)
{
return (a*b)/gcd(a,b);
}
int main()
{
memset(g,INF,sizeof(g));
for(int i=1;i<=2021;i++){
for(int j=i;j<=2021;j++){
if(i==j) g[i][j] = 0;
else if(abs(i-j)<=21){
g[i][j] = lcm(j,i);
g[j][i] = lcm(j,i);
}
}
}
memset(dist,INF,sizeof(dist));
dist[1] = 0;
for(int i=1;i<=2021;i++){
int mindist = INF;
int mask = -1;
for(int j=1;j<=2021;j++){
if(!vis[j] && dist[j]<mindist){
mindist = dist[j];
mask = j;
}
}
vis[mask] = 1;
for(int j=1;j<=2021;j++){
if(!vis[j]){
dist[j] = min(dist[j],dist[mask]+g[mask][j]);
}
}
}
cout<<dist[2021]<<endl;
return 0;
}