#include <bits/stdc++.h>
using namespace std;
const int maxn = 100179;
int dp[maxn];
int value(int n) {
  if (dp[n] == -1) {
    vector<int> values;
    for (int k = 2; k * (k + 1) / 2 <= n; k++) {
      if ((n - k * (k + 1) / 2) % k == 0) {
        int b = (n - k * (k + 1) / 2) / k;
        int v = 0;
        for (int i = (int)(1); i < (int)(k + 1); i++) {
          v ^= value(b + i);
        }
        values.push_back(v);
      }
    }
    sort(values.begin(), values.end());
    values.resize(unique(values.begin(), values.end()) - values.begin());
    int i = 0;
    for (; i < (int)values.size() && values[i] == i; i++)
      ;
    dp[n] = i;
  }
  return dp[n];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  memset(dp, 0xff, sizeof(dp));
  int n;
  cin >> n;
  if (value(n)) {
    for (int k = 2; k * (k + 1) / 2 <= n; k++) {
      if ((n - k * (k + 1) / 2) % k == 0) {
        int b = (n - k * (k + 1) / 2) / k;
        int v = 0;
        for (int i = (int)(1); i < (int)(k + 1); i++) {
          v ^= value(b + i);
        }
        if (v == 0) {
          cout << k << endl;
          return 0;
        }
      }
    }
  } else {
    cout << -1 << endl;
  }
  return 0;
}
