#include using namespace std; typedef long long ll; typedef vector VI; #define REP(i, n) for(int(i)=0;(i)<(n);++(i)) #define in(T,V) T V;cin>>V; const int MOD = int(1e9+7); vector divis_list(ll num){ vector dl; ll rt = ll(sqrt((double)num)); for(ll i = 1; i <= rt; i++){ if(num % i == 0){ dl.push_back(i); if(num / i != i) dl.push_back(num / i); } } return dl; } int main(){ in(ll,N); ll s = N*(N-1)/2; ll res = 0; auto dl = divis_list(N); for(auto i : dl){ if(N % i == 0 && s % i == 0){ res = max(res, i); } } cout << res << endl; }