#include <iostream>
#include<string>
using namespace std;
struct stroka
{
string s;
int m;
string words[10000];
};
int main()
{
int k=0;
stroka *a=new stroka[10000];
string s,s1,s2,s3,S1,S2;
while (getline(cin, s))
{
k++;
for (int i = 0; i < s.length(); i++) {
if ((s[i] >= '0' && s[i] <= '9') || (s[i] >= 'a' && s[i] <= 'z'))
s1 += s[i];
else if (s[i] >= 'A' && s[i] <= 'Z')
{
s1 += s[i] + 32;
}
else if (s[i] == ' ')
s1 += s[i];
}
int i=0;
while (i<s1.length())
{
while ((s1[i]!=32)&&(i<s1.length()))
{
s3=s3+s1[i];
i++;
}
if (s3.length() > 3)
{
s2 = s2 + s3;
if (i<s1.length())
s2=s2+ " ";
}
while (s1[i]==' ')
i++;
s3="";
}
a[k].s=s2;
s1="";
s2="";
}
for (int i=1;i<=k;i++)
{
int m=0;
int j=0;
while (j<a[i].s.length())
{
while ((a[i].s[j]!=32)&&(j<a[i].s.length()))
{
a[i].words[m]=a[i].words[m]+a[i].s[j];
j++;
}
j++;
m++;
}
a[i].m=m;
}
int c;
for (int i=1;i<k;i++)
for (int j=i+1;j<=k;j++)
{
double p=0;
for (int r=0;r<a[i].m;r++)
for (int l=0;l<a[j].m;l++)
{
int t=1;
double c=0;
while ((t<a[i].words[r].length())&&(t<a[j].words[l].length()))
{
if ((a[i].words[r][t]==a[j].words[l][t])&&(a[i].words[r][t-1]==a[j].words[l][t-1]))
c++;
t++;
}
double KF=c/(a[i].words[r].length()+a[j].words[l].length()-c);
if (KF>0.45)
p++;
}
double kf =p/(a[i].m+a[j].m-p);
if (kf>0.25)
cout<<i<<" "<<j<<endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBzdHJva2EKewpzdHJpbmcgczsKaW50IG07CnN0cmluZyB3b3Jkc1sxMDAwMF07ICAgIAp9OwppbnQgbWFpbigpCnsKICAgIAogICAgaW50IGs9MDsKICAgIHN0cm9rYSAqYT1uZXcgc3Ryb2thWzEwMDAwXTsKICAgIHN0cmluZyBzLHMxLHMyLHMzLFMxLFMyOwogICAgd2hpbGUgKGdldGxpbmUoY2luLCBzKSkgCiAgICB7CiAgICAgICAgaysrOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgICAgIGlmICgoc1tpXSA+PSAnMCcgJiYgc1tpXSA8PSAnOScpIHx8IChzW2ldID49ICdhJyAmJiBzW2ldIDw9ICd6JykpCiAgICAgICAgICAgICAgICBzMSArPSBzW2ldOwogICAgICAgICAgICBlbHNlIGlmIChzW2ldID49ICdBJyAmJiBzW2ldIDw9ICdaJykgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHMxICs9IHNbaV0gKyAzMjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChzW2ldID09ICcgJykKICAgICAgICAgICAgICAgIHMxICs9IHNbaV07CiAgICAgICAgfQogICAgaW50IGk9MDsKICAgIHdoaWxlIChpPHMxLmxlbmd0aCgpKQogICAgewogICAgCXdoaWxlICgoczFbaV0hPTMyKSYmKGk8czEubGVuZ3RoKCkpKQogICAgCXsKICAgIAlzMz1zMytzMVtpXTsKICAgIAlpKys7CiAgICAJfQogICAgCWlmIChzMy5sZW5ndGgoKSA+IDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHMyID0gczIgKyBzMzsKICAgICAgICAgICAgICAgIGlmIChpPHMxLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgczI9czIrICIgIjsKICAgICAgICAgICAgfQogICAgCXdoaWxlIChzMVtpXT09JyAnKQogICAgCWkrKzsKICAgIAlzMz0iIjsKICAgIH0KICAgIGFba10ucz1zMjsKICAgIHMxPSIiOwogICAgczI9IiI7CiAgICB9CiAgICBmb3IgKGludCBpPTE7aTw9aztpKyspCiAgICB7CiAgICAgICAgaW50IG09MDsKICAgICAgICBpbnQgaj0wOwogICAgICAgIHdoaWxlIChqPGFbaV0ucy5sZW5ndGgoKSkKICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlICgoYVtpXS5zW2pdIT0zMikmJihqPGFbaV0ucy5sZW5ndGgoKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGFbaV0ud29yZHNbbV09YVtpXS53b3Jkc1ttXSthW2ldLnNbal07CiAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaisrOwogICAgICAgICAgICBtKys7CiAgICAgICAgfQogICAgICAgIGFbaV0ubT1tOwogICAgfQogICAgaW50IGM7CiAgICBmb3IgKGludCBpPTE7aTxrO2krKykKICAgIGZvciAoaW50IGo9aSsxO2o8PWs7aisrKQogICAgewogICAgICBkb3VibGUgcD0wOwogICAgICBmb3IgKGludCByPTA7cjxhW2ldLm07cisrKQogICAgICBmb3IgKGludCBsPTA7bDxhW2pdLm07bCsrKQogICAgICAgIHsKICAgICAgICAgICBpbnQgdD0xOwogICAgICAgICAgIGRvdWJsZSBjPTA7CiAgICAgICAgICAgd2hpbGUgKCh0PGFbaV0ud29yZHNbcl0ubGVuZ3RoKCkpJiYodDxhW2pdLndvcmRzW2xdLmxlbmd0aCgpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKChhW2ldLndvcmRzW3JdW3RdPT1hW2pdLndvcmRzW2xdW3RdKSYmKGFbaV0ud29yZHNbcl1bdC0xXT09YVtqXS53b3Jkc1tsXVt0LTFdKSkKICAgICAgICAgICAgICAgIGMrKzsKICAgICAgICAgICAgICAgIHQrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBkb3VibGUgS0Y9Yy8oYVtpXS53b3Jkc1tyXS5sZW5ndGgoKSthW2pdLndvcmRzW2xdLmxlbmd0aCgpLWMpOwogICAgICAgICAgICBpZiAoS0Y+MC40NSkKICAgICAgICAgICAgcCsrOwogICAgICAgIH0KICAgICAgIGRvdWJsZSBrZiA9cC8oYVtpXS5tK2Fbal0ubS1wKTsKICAgICAgaWYgKGtmPjAuMjUpCiAgICAgIGNvdXQ8PGk8PCIgIjw8ajw8ZW5kbDsKICAgIH0KfQ==