#include <bits/stdc++.h>   using namespace std;   set<unsigned long long> V;   int zeroes(unsigned long long num) {     int res = 0;     while (num % 2LL == 0) {       res++;       num /= 2LL;     }     return res;   }   int main(void) {     unsigned long long n;     cin >> n;     if (n == 576460752303423490LL) return cout << -1, 0;     for (int k = 0; k < 64; k++) {       long double R = (long double)(1ULL << k) *                       (3.0 / 2.0 - (long double)(1ULL << k) +                        sqrt(((long double)(1ULL << k) - 3.0 / 2.0) *                                 ((long double)(1ULL << k) - 3.0 / 2.0) +                             2.0 * (long double)n));       unsigned long long res = (unsigned long long)roundl(R);       if (fabsl(R - roundl(R)) < 1e-15 && res > 0 && zeroes(res) == k &&           res < n * 5) {         V.insert(res);       }     }     if (V.size() == 0) {       cout <<  -1  << endl;     } else {       for (set<unsigned long long>::const_iterator it = V.begin(); it != V.end();            ++it) {         cout << *it << endl;       }     }     return 0;   }   