#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  string x[n][2];
  vector<pair<string, string>> vec;
  for (int i = 0; i < n; i++) cin >> x[i][0] >> x[i][1];
  for (int i = 0; i < n; i++) {
    if (x[i][0] == "???") continue;
    if (i < n - 1) {
      for (int j = i + 1; j < n; j++) {
        if (x[i][1] == x[j][0]) {
          x[i][1] = x[j][1];
          x[j][0] = "???";
        }
      }
    }
    vec.push_back(make_pair(x[i][0], x[i][1]));
  }
  cout << vec.size() << endl;
  for (int i = 0; i < vec.size() - 1; i++) {
    cout << vec[i].first << " " << vec[i].second << endl;
  }
  cout << vec[vec.size() - 1].first << " " << vec[vec.size() - 1].second;
  return 0;
}
