#include <bits/stdc++.h>
using namespace std;
int N;
int succ[100010], F[100010], context[100010];
int Find(int x) { return F[x] = ((F[x] == x) ? x : Find(F[x])); }
int main() {
  scanf("%d", &N);
  if (N & 1) {
    puts("-1");
    return 0;
  }
  int n = N / 2, i;
  for (i = 0; i <= n - 1; i++) {
    succ[i] = i * 2;
    succ[i + n] = i * 2 + 1;
  }
  for (i = 0; i <= N - 1; i++) F[i] = context[i] = i;
  for (i = 0; i <= N - 1; i++) F[Find(i)] = Find(succ[i]);
  for (i = 0; i <= n - 1; i++)
    if (Find(i * 2) != Find(i * 2 + 1)) {
      swap(succ[i * 2], succ[i * 2 + 1]);
      swap(context[i * 2], context[i * 2 + 1]);
      F[Find(i * 2)] = Find(i * 2 + 1);
    }
  printf("0");
  for (int y = succ[(context[0]) ? 1 : 0]; context[y]; y = succ[y])
    printf(" %d", context[y]);
  printf(" 0\n");
}
