#include <bits/stdc++.h>
using namespace std;
int times[50] = {0};
int graph[50][50] = {0};
void findMissing(int n, int &temp1, int &temp2) {
  bool condition = false;
  for (int i = 0; i < n; i++) {
    if (times[i] != (n - 1)) {
      if (condition)
        temp2 = i;
      else {
        temp1 = i;
        condition = true;
      }
    }
  }
}
void swap(int &n1, int &n2) {
  n1 += n2;
  n2 = n1 - n2;
  n1 -= n2;
}
void findOrder(int n, int &temp1, int &temp2) {
  for (int i = 0; i < n; i++) {
    bool condition = false;
    if (i == temp1 || i == temp2)
      continue;
    else {
      if (graph[temp1][i] == 1 && graph[i][temp2] == 1)
        return;
      else if (graph[i][temp1] == 1 && graph[temp2][i] == 1) {
        swap(temp1, temp2);
        return;
      }
    }
  }
}
int main() {
  int n, temp1, temp2;
  cin >> n;
  for (int i = 0; i < (((n * (n - 1)) / 2) - 1); i++) {
    cin >> temp1 >> temp2;
    times[temp1 - 1]++;
    times[temp2 - 1]++;
    graph[temp1 - 1][temp2 - 1] = 1;
  }
  findMissing(n, temp1, temp2);
  findOrder(n, temp1, temp2);
  cout << temp1 + 1 << " " << temp2 + 1 << endl;
  return 0;
}
