#include <bits/stdc++.h>   using namespace std;   vector<int> tab[100100], ans;   int n, ls[10];   bool used[100100];   bool chek(int a, int b) {     for (int i = 0; i < 4; i++)       if (tab[a][i] == b) return true;     return false;   }   int main() {     scanf( %d , &n);     for (int i = 0; i < n + n; i++) {       int a, b;       scanf( %d%d , &a, &b);       if (a == b) {         puts( -1 );         return 0;       }       tab[a].push_back(b);       tab[b].push_back(a);     }     for (int i = 1; i <= n; i++) {       if (tab[i].size() != 4) {         puts( -1 );         return 0;       }     }     if (n <= 10) {       int ar[30] = {};       for (int i = 0; i < n; i++) ar[i] = i + 1;       do {         ar[n] = ar[0];         ar[n + 1] = ar[1];         bool ok = true;         for (int i = 0; i < n; i++) {           if (!chek(ar[i], ar[i + 1]) || !chek(ar[i], ar[i + 2])) {             ok = false;             break;           }         }         if (ok) {           for (int i = 0; i < n; i++)             printf( %d%c , ar[i], i == n - 1 ?   n  :    );           return 0;         }       } while (std::next_permutation(ar, ar + n));       puts( -1 );       return 0;     }     int start = 1, pre = -1;     while (!used[start]) {       used[start] = true;       ans.push_back(start);       int nxt = start;       for (int i = 0; i < 4; i++) {         int cnt = 0;         for (int j = 0; j < 4; j++)           if (chek(tab[start][i], tab[start][j])) cnt++;         if (cnt == 2 && tab[start][i] != pre) {           nxt = tab[start][i];           break;         }       }       if (nxt == start) {         puts( -1 );         return 0;       }       pre = start;       start = nxt;     }     if ((int)ans.size() < n) {       puts( -1 );       return 0;     }     ans.push_back(ans[0]);     ans.push_back(ans[1]);     for (int i = 0; i < n; i++) {       if (!chek(ans[i], ans[i + 1]) || !chek(ans[i], ans[i + 2])) {         puts( -1 );         return 0;       }     }     for (int i = 0; i < n; i++) printf( %d%c , ans[i], i == n - 1 ?   n  :    );     return 0;   }   