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