#include <iostream>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define D double
#define LD long double
#define LL long long
#define ULL unsigned long long
#define S string
using namespace std;
struct xy
{
S name;
S sos;
int find_()//查找sos个数
{
int s = 0;
int k = 0;
int f_ = 0;
while (s != -1)
{
s = sos.find("sos", s);
sos[s + 1] = sos[s] = '1';
//去重(sosos -> 11sos -> 1111s)
k++;
}
return k - 1;
}
int sum;
} a[100];
S sort_name[101][101];
//桶排,第一个下标存sos个数,第二个存是第几个
int sort_k[101];
//求有i个sos的有几个
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i].name >> a[i].sos;
}
//输入名字和呼救
int maxsum = 0;
//标记最大SOS个数
for (int i = 0; i < n ; i++)
{
a[i].sum = max(0, a[i].find_());
//查找sos个数
maxsum = max(maxsum, a[i].sum);
//更新最大值
sort_name[a[i].sum][sort_k[a[i].sum]++] = a[i].name;
//记录当前的sos个数的名字
}
for (int i = 0; i < sort_k[maxsum]; i++)
{
cout << sort_name[maxsum][i] << ' ';
//输出
}
cout << endl << maxsum;
return 0;
}