#include <bits/stdc++.h>   using namespace std;   const int INF = 1e8 + 1;   vector<vector<int> > adj;   vector<bool> visited;   int contadorNodos = 0;   void DFS(int nodo) {     contadorNodos++;     for (auto it : adj[nodo]) {       DFS(it);     }   }   void letras(string &s) {     for (int i = 0; i < s.size(); i++) {       s[i] = tolower(s[i]);     }   }   int main() {     int n;     cin >> n;     map<string, int> m;     adj.resize(205);     visited.resize(205, false);     int j = 1;     for (int i = 0; i < n; i++) {       string a, b, c;       cin >> a >> b >> c;       letras(a);       letras(c);       if (m[a] == 0) {         m[a] = j;         j++;       }       if (m[c] == 0) {         m[c] = j;         j++;       }       adj[m[a]].push_back(m[c]);     }     int res = 0;     for (int i = 1; i < j; i++) {       contadorNodos = 0;       DFS(i);       res = max(res, contadorNodos);     }     cout << res << endl;   }   