#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int vis[110000];
int N;
int aft[110000];
void dfs(int n) {
  if (vis[n]) return;
  vis[n] = 1;
  if (!vis[((n << 1)) % N])
    aft[n] = (n * 2) % N, dfs(((n << 1)) % N);
  else if (!vis[(n * 2 + 1) % N])
    aft[n] = (n * 2 + 1) % N, dfs(((n << 1) + 1) % N);
  if (!vis[(n + N / 2) % N]) {
    aft[n] = (n * 2 + 1) % N;
    dfs(((n << 1) + 1) % N);
    aft[(n + N / 2) % N] = n * 2 % N;
  }
}
int main() {
  int i, j, n;
  cin >> n;
  N = n;
  if (n % 2 == 1) {
    puts("-1");
    return 0;
  }
  dfs(0);
  j = 1;
  printf("0");
  for (i = 1; i <= n; i++) printf(" %d", j), j = aft[j];
  puts("");
}
