#include <bits/stdc++.h>
using namespace std;
int ans[100010];
bool vis[100010];
bool dfs(int n, int p, int k) {
  if (p == 1) {
    ans[p] = 1;
    return true;
  }
  ans[p] = k;
  vis[k] = true;
  if (!vis[(n + k) >> 1] && dfs(n, p - 1, (n + k) >> 1)) return true;
  if (!vis[k >> 1] && dfs(n, p - 1, k >> 1)) return true;
  return false;
}
int main() {
  int n, i;
  while (~scanf("%d", &n)) {
    memset(vis, 0, sizeof(vis));
    if (n & 1)
      printf("-1\n");
    else {
      dfs(n, n, 0);
      for (i = 0; i <= n; ++i) printf("%d%c", ans[i], i < n ? ' ' : '\n');
    }
  }
  return 0;
}
