#include <bits/stdc++.h>
using namespace std;
const int MAX = 100000;
set<int> grund;
bool solve;
int grundy[MAX + 1];
int xorSum[MAX + 1];
int main() {
  grundy[0] = grundy[1] = 0;
  xorSum[0] = xorSum[1] = 0;
  for (int i = 2; i <= MAX; i++) {
    grund.clear();
    for (int k = 2; k < i; k++) {
      int lo = (2 * i - k * k + k) / (2 * k);
      int hi = lo + k - 1;
      if (lo <= 0) break;
      int r1 = (k * (k - 1) / 2) % k;
      int r2 = i % k;
      if (r1 != r2) continue;
      int sum = xorSum[hi] ^ xorSum[lo - 1];
      grund.insert(sum);
    }
    int j = 0;
    while (grund.count(j)) j++;
    grundy[i] = j;
    xorSum[i] = xorSum[i - 1] ^ j;
  }
  int n;
  cin >> n;
  if (grundy[n] == 0)
    cout << -1 << endl;
  else {
    int ans = -1;
    for (int k = 2; k < n; k++) {
      int lo = ((2 * n - k * k + k) / (2 * k));
      int hi = lo + k - 1;
      int r1 = (k * (k - 1) / 2) % k;
      int r2 = n % k;
      if (r1 != r2) continue;
      int sum = xorSum[hi] - xorSum[lo - 1];
      if (sum == 0) {
        ans = k;
        break;
      }
    }
    cout << ans << endl;
  }
}
