#include <bits/stdc++.h>
using namespace std;
struct Friend {
  string name;
  int x, y, z;
} f[123];
bool Isde(char *a) {
  if (a[0] <= a[1]) return false;
  if (a[1] <= a[3]) return false;
  if (a[3] <= a[4]) return false;
  if (a[4] <= a[6]) return false;
  if (a[6] <= a[7]) return false;
  return true;
}
bool Isiden(char *a) {
  if (a[0] != a[1]) return false;
  if (a[1] != a[3]) return false;
  if (a[3] != a[4]) return false;
  if (a[4] != a[6]) return false;
  if (a[6] != a[7]) return false;
  return true;
}
int main() {
  int n;
  while (cin >> n) {
    int mx = 0, my = 0, mz = 0;
    for (int i = 0; i < n; ++i) {
      int m;
      cin >> m >> f[i].name;
      f[i].x = f[i].y = f[i].z;
      char str[100];
      for (int j = 0; j < m; ++j) {
        cin >> str;
        if (Isiden(str))
          f[i].x++;
        else if (Isde(str))
          f[i].y++;
        else
          f[i].z++;
      }
      mx = max(f[i].x, mx);
      my = max(f[i].y, my);
      mz = max(f[i].z, mz);
    }
    bool flag = false;
    cout << "If you want to call a taxi, you should call: ";
    for (int i = 0; i < n; ++i) {
      if (f[i].x == mx) {
        if (flag) cout << ", ";
        cout << f[i].name;
        flag = true;
      }
    }
    cout << "." << endl;
    flag = false;
    cout << "If you want to order a pizza, you should call: ";
    for (int i = 0; i < n; ++i) {
      if (f[i].y == my) {
        if (flag) cout << ", ";
        cout << f[i].name;
        flag = true;
      }
    }
    cout << "." << endl;
    flag = false;
    cout << "If you want to go to a cafe with a wonderful girl, you should "
            "call: ";
    for (int i = 0; i < n; ++i) {
      if (f[i].z == mz) {
        if (flag) cout << ", ";
        cout << f[i].name;
        flag = true;
      }
    }
    cout << "." << endl;
  }
  return 0;
}
