#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
int n;
int m;
int q[100001];
int was[100001];
int w[100001];
int p[100001];
int bad = 0;
int go(int x, int y) {
  q[y] = x;
  if (y + 1 == n && (2 * x) % n == 0) {
    for (int i = 0; i <= y; i++) printf("%d ", q[i]);
    printf("0\n");
    return 1;
  }
  was[x] = 1;
  p[x] = rand() & 1;
  int a = (2 * x + p[x]) % n;
  int b = (2 * x + 1 - p[x]) % n;
  if (!was[a] && go(a, y + 1) || was[a] && !was[b] && go(b, y + 1)) return 1;
  if (!was[a] && !was[b] && bad) {
    bad--;
    if (go(b, y + 1)) return 1;
  }
  was[x] = 0;
  return 0;
}
int main() {
  srand(3);
  scanf("%d", &n);
  if (n & 1)
    printf("-1");
  else {
    do {
      bad = 20;
      if (go(0, 0)) return 0;
    } while (true);
  }
  return 0;
}
