#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;
}
