#include <bits/stdc++.h>
using namespace std;
long long n;
int m;
int main() {
  while (cin >> n) {
    vector<long long> v;
    for (int i = 0; i < 60; i++) {
      long long z = (1LL << i) - 1;
      if (z > n) break;
      long long lo = 0;
      long long hi = n - z + 1;
      for (int caso = 0; caso < 100; caso++) {
        long long me = (lo + hi) / 2;
        if ((z + me) == 0) {
          lo = me;
          continue;
        }
        if ((2 * me + 1) > (n / (z + me)))
          hi = me;
        else
          lo = me;
      }
      for (int j = lo; j <= hi; j++)
        if ((2 * j + 1) * (z + j) == n)
          if (j >= 0) v.push_back((1LL << i) * (2 * j + 1));
    }
    sort(v.begin(), v.end());
    if (v.size() == 0) {
      cout << -1 << endl;
    } else {
      for (int i = 0; i < v.size(); i++) cout << v[i] << endl;
    }
  }
  return 0;
}
