#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long dx[] = {-1, 0, 1, 0};
long long dy[] = {0, -1, 0, 1};
bool check(long long x, long long k, long long n) {
  if (k - 1 > 0 && x > n / (k - 1)) return 0;
  long long res = x * (x - 1) / 2 + x * (k - 1);
  return res <= n;
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  set<long long> st;
  for (long long i = 0; i < 64; i++) {
    long long k = (1ll << i);
    long long s = 0, e = 1e10;
    long long ans;
    while (s <= e) {
      long long mid = (s + e) / 2;
      if (check(mid, k, n)) {
        ans = mid;
        s = mid + 1;
        if (ans & 1) {
          long long x = ans * (ans - 1) / 2 + ans * (k - 1);
          if (x == n) st.insert(ans * (k));
        }
      } else
        e = mid - 1;
    }
  }
  if (!st.size()) {
    cout << -1;
    return 0;
  }
  for (auto i : st) cout << i << "\n";
}
