import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class Rhino {
public static int [] ratia;
int n;
Karta [] hodnoceny = new Karta [5];
Karta [] spolecny = new Karta [5];
Karta [][] ruce;
while((str = br.readLine()) != null){
str = br.readLine();
str = str.replace("X", ":");
str = str.replace("J", ";");
str = str.replace("Q", "<");
str = str.replace("K", "=");
str = str.replace("A", ">");
str = str.replace("c", "a");
str = str.replace("d", "b");
str = str.replace("h", "c");
str = str.replace("s", "d");
radek = str.split(" ");
for (int i = 0; i < 5; i++)
{
char cislo = radek[i].charAt(0);
char druh = radek[i].charAt(1);
spolecny[i] = new Karta(cislo, druh);
}
ruce = new Karta [n][2];
ratia = new int [n];
for (int i = 0; i < n; i++)
{
str = br.readLine();
str = str.replace("X", ":");
str = str.replace("J", ";");
str = str.replace("Q", "<");
str = str.replace("K", "=");
str = str.replace("A", ">");
str = str.replace("c", "a");
str = str.replace("d", "b");
str = str.replace("h", "c");
str = str.replace("s", "d");
radek = str.split(" ");
ruce[i][0] = new Karta(radek[0].charAt(0), radek[0].charAt(1));
ruce[i][1] = new Karta(radek[1].charAt(0), radek[1].charAt(1));
for (int j = 0; j < 3; j++)
{
for (int k = 1; k < 3; k++)
{
for (int l = 2; l < 4; l++)
{
if (j != k && j != l && k != l)
{
hodnoceny[0] = ruce[i][0];
hodnoceny[1] = (ruce[i][0]);
hodnoceny[2] = (spolecny[j]);
hodnoceny[3] = (spolecny[k]);
hodnoceny[4] = (spolecny[l]);
vyhodnotit(i, hodnoceny);
}
}
}
}
}
}
}
private static void vyhodnotit(int index, Karta [] hodnoceny)
{
boolean isStraight = false;
boolean isFlush = true;
//royal flush
if (hodnoceny[0].cislo == 0 && hodnoceny[1].cislo == 10 &&hodnoceny[2].cislo == 11 &&hodnoceny[3].cislo == 12 &&hodnoceny[4].cislo == 13 )
{
isStraight = true;
}
if (!isStraight)
{
isStraight = true;
for (int i = 1; i < 5; i++)
{
if (hodnoceny[i].cislo != hodnoceny[i+1].cislo)
{
isStraight = false;
break;
}
}
}
for (int i = 0; i < 4; i++)
if (hodnoceny[i].barva != hodnoceny[i+1].barva)
isFlush = false;
if (isStraight && isFlush)
ratia[index] = 8;
else if (isFlush)
ratia[index] = 5;
else if (isStraight)
ratia[index] = 4;
boolean isPoker = false;
//Poker
if (hodnoceny[1].cislo == hodnoceny[2].cislo && hodnoceny[1].cislo == hodnoceny[2].cislo)
if (hodnoceny[i].cislo != hodnoceny[i+1].cislo)
{
isStraight = false;
break;
}
}
if (!isStraight)
{
isStraight = true;
for (int i = 1; i < 5; i++)
{
if (hodnoceny[i].cislo != hodnoceny[i+1].cislo)
{
isStraight = false;
break;
}
}
}
}
}
class Karta implements Comparable<Karta>
{
char cislo;
char barva;
public Karta(char cislo, char barva)
{
this.cislo = (char)(((int)(cislo)-(int)('0'))%14);
this.barva = barva;
}
public int compareTo(Karta o)
{
return this.cislo - o.cislo;
}
}