#include <bits/stdc++.h>
using namespace std;
int n, ter[500010], nxt[500010], lnk[500010], e, vis[500010], a[500010],
    b[500010];
void add(int x, int y) {
  ter[++e] = y, nxt[e] = lnk[x], lnk[x] = e, vis[e] = true;
}
void Euler(int p) {
  for (int i = lnk[p]; i; i = nxt[i])
    if (vis[i]) vis[i] = false, Euler(ter[i]);
  a[++a[0]] = p;
}
void solve() {
  if (n == 2) {
    printf("0 1 0");
    return;
  }
  for (int i = 0; i < n / 2; ++i)
    add(i, (2 * i) % (n / 2)), add(i, (2 * i + 1) % (n / 2));
  Euler(0);
  reverse(a + 1, a + a[0] + 1);
  for (int i = 1; i < a[0]; ++i)
    if (a[i + 1] == (2 * a[i]) % (n / 2))
      b[i] = 2 * a[i];
    else
      b[i] = 2 * a[i] + 1;
  int k = 0;
  for (int i = 1; i < a[0]; ++i)
    if (b[i] == 0) k = i;
  printf("0");
  for (int i = k % (a[0] - 1) + 1; i != k; i = i % (a[0] - 1) + 1)
    printf(" %d", b[i]);
  printf(" 0");
}
int main() {
  scanf("%d", &n);
  if (n & 1)
    printf("-1");
  else
    solve();
  return 0;
}
