#include<iostream>
#include<string>
#include<stdio.h>
#include<algorithm>
#include<cstring>
using namespace std;
long long s, sum;
int zz(int a) {
if (a < 2) return 0;
if (a <= 3) return 1;
for (int i = 2; i < a / 2; i++) {
if (a % i == 0) return 0;
}
return 1;
}
int main() {
cin >> s;
for (int i = 1; i <= s/2; i++) {
if (zz(i) && zz(s - i)) {
if (i * (s - i) > sum) sum = i * (s - i);
}
}
cout << sum;
return 0;
}
//#include<iostream>
//#include<map>//Map头文件
//#include<cstdio>
//using namespace std;
//map <char, int> num;//表示以char类型为下标,存储的是int
//string st;
//int main() {
// cin >> st;//输入
// int len = st.length();
// num['a'] = num['b'] = num['c'] = '0';//注意初始化。。。。被坑了
// for (int i = 0; i < len; i += 5)
// if (st[i + 3] >= '0' && st[i + 3] <= '9')//注意判断是不是0~9
// num[st[i]] = st[i + 3];//直接取出数字赋值给对应变量
// else num[st[i]] = num[st[i + 3]];//变量之间相赋值
// printf("%c %c %c", num['a'], num['b'], num['c']);
// //输出三个变量
// return 0;
//}