#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  clock_t launch = clock();
  long long t = 1;
  while (t--) {
    long long n, c = 0;
    cin >> n;
    string fr, to;
    vector<string> v;
    map<string, string> mp;
    map<string, bool> vis;
    for (long long i = 0; i < n; i++) {
      cin >> fr >> to;
      if (!vis[fr]) c++;
      v.push_back(fr);
      mp[fr] = to;
      mp[to] = to;
      vis[fr] = true;
      vis[to] = true;
    }
    vis.clear();
    cout << c << endl;
    for (long long i = 0; i < n; i++) {
      fr = v[i];
      if (vis[fr]) continue;
      vis[fr] = true;
      cout << fr << " ";
      while (fr != mp[fr]) {
        fr = mp[fr];
        vis[fr] = true;
      }
      cout << fr << endl;
    }
  }
  clog << ((long double)(clock() - launch) / CLOCKS_PER_SEC) << "\n";
  return 0;
}
