#include <iostream> #include <vector> #include <string> #include <set> #include <map> #include <algorithm> const int mod=1e9+7; using LL=long long; using std::cout;using std::endl;using std::cin; using std::vector;using std::string;using std::set;using std::multiset; using std::pair;using std::map; using std::min;using std::max; using std::make_pair;using std::swap; std::ostream& operator<<(std::ostream& os,std::map<int,int>& obj){for(std::map<int,int>::iterator itr=obj.begin();itr!=obj.end();itr++){os<<itr->first<<"^"<<itr->second<<" ";}return os;} std::ostream& operator<<(std::ostream& os,std::vector<std::map<int,int>>& obj){for(auto itr=obj.begin();itr!=obj.end();itr++){os<<*itr<<std::endl;}return os;} std::ostream& operator<<(std::ostream& os,std::vector<int>& obj){for(auto itr=obj.begin();itr!=obj.end();itr++){os<<*itr<<" ";}return os;} std::ostream& operator<<(std::ostream& os,std::vector<std::vector<int>>& obj){for(auto itr=obj.begin();itr!=obj.end();itr++){os<<*itr<<std::endl;}return os;} namespace ndifix{ template<class T> void sort(T &v){std::sort(v.begin(),v.end());} template<class T> void rsort(T &v){std::sort(v.rbegin(),v.rend());} } int main(){ int n;cin>>n; vector<int> prime; prime.push_back(3); for(int i=5;i<1200;i+=2){ bool flag=1; for(int j=0;j<prime.size();j++){ if(i%prime[j]==0){flag=0;break;} } if(flag)prime.push_back(i); } prime.push_back(2); prime.push_back(1); ndifix::sort(prime); for(int i=n-100;i<n+101;i++){ if(i==prime[0])prime.erase(prime.begin()); else if(i>prime[0])prime.erase(prime.begin()); else {cout<<i<<endl;return 0;} } return 0; }