#include <bits/stdc++.h>   #pragma comment(linker,  /STACK:16777216 )   using namespace std;   const double eps = 1e-9;   const double pi = acos(-1.0);   int main() {     long long n;     cin >> n;     unsigned long long p = 1;     unsigned long long sq = (unsigned long long)(sqrt(n + 0.0) + eps + 1);     bool was = false;     while (p - 1 <= n) {       unsigned long long lf = 1;       unsigned long long rg = min(sq, n / p) + 5;       while (lf < rg - 1) {         unsigned long long mm = (lf + rg) >> 1;         unsigned long long m = 2 * mm - 1;         if ((p - 1) * m + m * (m - 1) / 2 <= n) {           lf = mm;         } else {           rg = mm;         }       }       lf = 2 * lf - 1;       if ((p - 1) * lf + lf * (lf - 1) / 2 == n) {         cout << p * lf << endl;         was = true;       }       p = p * 2;     }     if (!was) puts( -1 );     return 0;   }   