GCD
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛有一个集合 S 包含 1 至 n 所有的数, 现在他想让你找一个最小的数 k , 使得在 S 中任意找一个子集 T , T 集合中的元素个数为 k , T 中都存在两个数 x , y ,且 gcd(x,y) > 1 . 如果找不到满足题目条件的 k ,就输出 -1 ,否则输出 k .

gcd(x, y) 为求 x y 的最大公约数。

输入描述:

一个数字 n ( 1 ≤ n ≤ 1e5 )

输出描述:

如果找不到满足题目条件的 k ,就输出 -1 ,否则输出 k .


示例1

输入

复制
3

输出

复制
-1
示例2

输入

复制
6

输出

复制
5