#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100000;
int n;
vector<int> graf[MAXN + 3];
bool odw[MAXN + 3];
int st[MAXN + 3], color[MAXN + 3];
int wyn[MAXN + 3], ind;
void wczytaj() {
  scanf("%d", &n);
  for (int i = 0; i < 2 * n; i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    graf[a].push_back(b);
    graf[b].push_back(a);
    st[a]++;
    st[b]++;
  }
}
bool check_st() {
  for (int i = 1; i <= n; i++)
    if (st[i] != 4) return false;
  return true;
}
inline bool check_neighbours(int v, int u) {
  int licznik = 0;
  for (int i = 0; i < 4; i++)
    if (color[graf[u][i]] == v) licznik++;
  if (licznik == 2) return true;
  return false;
}
void dfs(int v) {
  odw[v] = true;
  wyn[ind++] = v;
  for (int i = 0; i < 4; i++) color[graf[v][i]] = v;
  for (int i = 0; i < 4; i++) {
    int u = graf[v][i];
    if (!odw[u] && check_neighbours(v, u)) dfs(u);
  }
}
inline bool check_connect(int v, int x, int y) {
  bool spr = false;
  for (int i = 0; i < 4; i++)
    if (graf[v][i] == x) {
      spr = true;
      break;
    }
  if (!spr) return false;
  spr = false;
  for (int i = 0; i < 4; i++)
    if (graf[v][i] == y) {
      spr = true;
      break;
    }
  return spr;
}
inline bool check_connect(int v, int x) {
  bool spr = false;
  for (int i = 0; i < 4; i++)
    if (graf[v][i] == x) {
      spr = true;
      break;
    }
  return spr;
}
void brut() {
  int t[10];
  for (int i = 1; i <= n; i++) t[i] = i;
  do {
    bool spr = true;
    spr = check_connect(t[1], t[n]);
    for (int i = 2; i <= n && spr; i++) spr = check_connect(t[i], t[i - 1]);
    for (int i = 1; i <= n && spr; i++) {
      int p = (i - 2 >= 1) ? i - 2 : i + n - 2;
      int k = (i + 2 <= n) ? i + 2 : i - n + 2;
      spr = check_connect(t[i], t[p], t[k]);
    }
    if (spr) {
      for (int i = 1; i <= n; i++) printf("%d ", t[i]);
      puts("");
      return;
    }
  } while (next_permutation(t + 1, t + n + 1));
}
int main() {
  wczytaj();
  if (!check_st()) {
    puts("-1");
    return 0;
  }
  if (n > 6) {
    dfs(1);
    if (ind != n)
      puts("-1");
    else {
      for (int i = 0; i < n; i++) printf("%d ", wyn[i]);
      puts("");
    }
  } else
    brut();
  return 0;
}
