#include #define PB push_back #define MP make_pair #define REP(i,n) for (int i=0;i<(n);i++) #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define ALL(a) (a).begin(),(a).end() int INF=1e9; int MOD=1000000007; using namespace std; typedef long long ll; typedef unsigned long long ull; double EPS = 1e-10; ull pow1(ull base,ull power,ull mod){ ull result=1; while(power>0){ if(power&1==1)result=(result*base)%mod; base=(base*base)%mod; power>>=1; } return result; } bool is_prime(ull n){ if(n==2)return true; if(n==1||n&1==0)return false; ull d=n-1; while(d&1==0)d>>=1; REP(i,1000){ ull a=rand()%(n-2)+1; ull t=d; ull y=pow1(a,t,n); while(t!=n-1&&y!=1&&y!=n-1){ y=(y*y)%n; y<<=1; } if(y!=n-1&&y&1==0)return false; } return true; } int main(){ srand((unsigned)time(NULL)); ull s; cin>>s; if(s==1){ cout<<1<