#include <bits/stdc++.h>
using namespace std;
int countCommon(int a, int b, int temp2[][5]);
int countCommon(int a, int b, int temp2[][5]) {
  int count = 0;
  int common = 0;
  for (int i = 1; i <= 4; i++) {
    for (int j = 1; j <= 4; j++) {
      if (temp2[a][i] == temp2[b][j]) {
        count++;
        if (count > 2) return count;
        common = temp2[a][i];
      }
    }
  }
  if (count == 1) return common + 5;
  return count;
}
int main() {
  int n, a, b;
  cin >> n;
  int output[n];
  memset(output, 0, sizeof(int) * n);
  int temp[n + 1][5];
  memset(temp, 0, sizeof(int) * (n + 1) * 5);
  bool complete = 0;
  for (int i = 0; i < 2 * n; i++) {
    cin >> a;
    cin >> b;
    temp[a][0] += 1;
    temp[b][0] += 1;
    if (temp[a][0] > 4) {
      cout << -1;
      return 0;
    }
    if (temp[b][0] > 4) {
      cout << -1;
      return 0;
    }
    temp[a][temp[a][0]] = b;
    temp[b][temp[b][0]] = a;
  }
  for (int i = 1; i <= n; i++)
    if (temp[a][0] < 4) {
      cout << -1;
      cout << "\n less than 4 for " << a << " or " << b << "\n";
      return 0;
    }
  if (n == 5) {
    for (int i = 0; i < n; i++) {
      cout << i + 1 << " ";
    }
    return 0;
  } else if (n == 6) {
    int num1 = 1;
    if (temp[num1][0] == -1) {
      cout << -1;
      return 0;
    }
    temp[num1][0] = -1;
    output[0] = num1;
    int sum = 0;
    for (int j = 1; j <= 4; j++) sum += temp[num1][j];
    int missed = 20 - sum;
    if (temp[missed][0] == -1) {
      cout << -1;
      return 0;
    }
    temp[missed][0] = -1;
    output[3] = missed;
    int num2 = temp[num1][1];
    if (temp[num2][0] == -1) {
      cout << -1;
      return 0;
    }
    temp[num2][0] = -1;
    output[1] = num2;
    sum = 0;
    for (int j = 1; j <= 4; j++) sum += temp[num2][j];
    missed = 21 - sum - num2;
    if (temp[missed][0] == -1) {
      cout << -1;
      return 0;
    }
    temp[missed][0] = -1;
    output[4] = missed;
    int num3 = (temp[num1][2] != missed) ? temp[num1][2] : temp[num1][3];
    if (temp[num3][0] == -1) {
      cout << -1;
      return 0;
    }
    temp[num3][0] = -1;
    output[2] = num3;
    sum = 0;
    for (int j = 1; j <= 4; j++) sum += temp[num3][j];
    missed = 21 - sum - num3;
    if (temp[missed][0] == -1) {
      cout << -1;
      return 0;
    }
    temp[missed][0] = -1;
    output[5] = missed;
  } else {
    int setcount = 0;
    int num1 = 1;
    output[setcount] = num1;
    setcount++;
    temp[num1][0] = -1;
    while (setcount < n) {
      int common = 0;
      int j = 1;
      for (; j <= 4; j++) {
        if (setcount > 2)
          if (temp[num1][j] == output[setcount - 3] ||
              temp[num1][j] == output[setcount - 2]) {
            continue;
          }
        common = countCommon(num1, temp[num1][j], temp);
        if (common > 5) {
          if (temp[common - 5][0] == -1) {
            cout << -1;
            return 0;
          }
          temp[common - 5][0] = -1;
          output[setcount++] = common - 5;
          if (setcount < n) {
            if (temp[temp[num1][j]][0] == -1) {
              cout << -1;
              return 0;
            }
            temp[temp[num1][j]][0] = -1;
            output[setcount++] = temp[num1][j];
          }
          num1 = temp[num1][j];
          break;
        } else if (common == 2) {
          continue;
        } else {
          cout << -1;
          return 0;
        }
      }
      if (j == 5) {
        cout << -1;
        return 0;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    cout << output[i] << " ";
  }
  return 0;
}
