#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b = 1, size;
  vector<pair<string, string> > ar_a;
  cin >> a;
  size = a;
  ar_a.resize(a);
  for (int i = 0; i < a; i++) cin >> ar_a[i].first >> ar_a[i].second;
  while (b) {
    b = 0;
    for (int i = 0; i < size; i++) {
      for (int j = 0; j < size; j++) {
        if (i - j) {
          if (ar_a[i].second == ar_a[j].first) {
            b++;
            size--;
            ar_a[i].second = ar_a[j].second;
            ar_a[j].first = "{}";
            sort(ar_a.begin(), ar_a.end());
          } else if (ar_a[i].first == ar_a[j].second) {
            b++;
            size--;
            ar_a[j].second = ar_a[i].second;
            ar_a[i].first = "{}";
            sort(ar_a.begin(), ar_a.end());
          }
        }
      }
    }
  }
  cout << size << endl;
  for (int i = 0; i < size; i++)
    cout << ar_a[i].first << ' ' << ar_a[i].second << endl;
  return 0;
}
