#include <bits/stdc++.h>
using namespace std;
const int MAX_SIZE = 100000;
int to[MAX_SIZE + 10], fa[MAX_SIZE + 10];
int n;
int findFather(int a) {
  if (fa[a] != a) fa[a] = findFather(fa[a]);
  return fa[a];
}
int main() {
  scanf("%d", &n);
  if (n & 1)
    fputs("-1\n", stdout);
  else {
    memset(to, -1, sizeof(to));
    for (int i = 0; i < n; i++) fa[i] = i;
    for (int i = 0; i < n; i++) {
      int par = (i + (n >> 1)) % n;
      if (to[par] == -1)
        to[i] = (i << 1) % n;
      else if (to[par] == (i << 1) % n)
        to[i] = ((i << 1) + 1) % n;
      else
        to[i] = (i << 1) % n;
      fa[findFather(to[i])] = findFather(i);
    }
    for (int i = 0; i < n; i++)
      if (findFather(i) != findFather((i + (n >> 1)) % n)) {
        swap(to[i], to[(i + (n >> 1)) % n]);
        fa[findFather(i)] = findFather((i + (n >> 1)) % n);
      }
    int cur = 0;
    while (true) {
      printf("%d ", cur);
      if (to[cur] == 0) break;
      cur = to[cur];
    }
    printf("0\n");
  }
  return 0;
}
