#include<bits/stdc++.h>
using namespace std;
#define MO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
int q;
string old , nw;
map<string,string>mp;
int main()
{
MO
cin>>q;
while(q--)
{
cin>>old>>nw;
auto it = mp.find(old);
if(it!=mp.end())
{
old = it->second;
mp.erase(it);
}
mp[nw]=old;
}
cout<<mp.size()<<'\n';
for(auto it : mp)
cout<<it.second<<' '<<it.first<<'\n';
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNTyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBsbCBsb25nIGxvbmcKaW50IHE7CnN0cmluZyBvbGQgLCBudzsKbWFwPHN0cmluZyxzdHJpbmc+bXA7CmludCBtYWluKCkKewogICAgTU8KICAgIGNpbj4+cTsKICAgd2hpbGUocS0tKQogICB7CiAgICAgICBjaW4+Pm9sZD4+bnc7CiAgICAgICBhdXRvIGl0ID0gbXAuZmluZChvbGQpOwogICAgICAgaWYoaXQhPW1wLmVuZCgpKQogICAgICAgewogICAgICAgICAgb2xkID0gaXQtPnNlY29uZDsKICAgICAgICAgICBtcC5lcmFzZShpdCk7CiAgICAgICB9CiAgICAgICBtcFtud109b2xkOwogICB9CiAgICBjb3V0PDxtcC5zaXplKCk8PCdcbic7CiAgIGZvcihhdXRvIGl0IDogbXApCiAgICAgICBjb3V0PDxpdC5zZWNvbmQ8PCcgJzw8aXQuZmlyc3Q8PCdcbic7CiAgICByZXR1cm4gMDsKfQo=