#include <stdio.h>
#include <string.h>

typedef enum
{
    TYPE_ONE = 0,        //个子
    TYPE_PAIR,           //对子
    TYPE_STAIGHT,        //顺子
    TYPE_THREE,          //三个
    TYPE_BOMB,           //炸弹
    TYPE_JOKER_BOMB      //王炸
}ENUM_CARD_TYPE;

typedef struct
{
    ENUM_CARD_TYPE type;
    int value;
}playing_card;

/* 获取牌的类型 */
ENUM_CARD_TYPE get_type(int size, int len)
{
    ENUM_CARD_TYPE type;
    switch (size)
    {
        case 1:
            type = TYPE_ONE;
            break;
        case 2:
            if(len == size)            // 10 也为个子
            {
                type = TYPE_ONE;
            }
            else
            {
                type = TYPE_PAIR;
            }
            
            break;
        case 3:
            type = TYPE_THREE;
            break;
        case 4:
            if(len == 5)
            {
                 type = TYPE_PAIR;            //10 10 一对10
            }
            else
            {
                type = TYPE_BOMB;
            }
            
            break;
        case 5:
            if(len == size)
            {
                type = TYPE_ONE;
            }
            else
            {
                type = TYPE_STAIGHT;
            }
           
            break;
        default:
            if(len == 11 && size == 8)        // 四个10 为炸弹
            {
                type = TYPE_BOMB;
            }
            else if(len == 10 && size == 6)   // 10 - A 为顺子
            {
                type = TYPE_STAIGHT;
            }
            else
            {
                type = TYPE_JOKER_BOMB;
            }
            
            break;
            
    }
    return type;
}

/* 获取牌的大小 3-JOKER  对应 3-17 大小值 */
int get_value(char* str)
{
    int result = 0;
    int c = str[0];
    int len = strlen(str);
    
    if(c >= '3' && c <= '9')
    {
        result = c - '0';
    }
    else if(str[0] == '1' && str[1] == '0')                        //10
    {
        result = 10;
    }
    else if(len == 5 && str[0] == 'j' && str[1] == 'o' && str[2] == 'k')        //joker
    {
        result = 16;  
    }
    else if(len == 5 && str[0] == 'J' && str[1] == 'O' && str[2] == 'K')        //JOKER
    {
        result = 17;  
    }
    else
    {
        switch (c)
        {
            case 'J':
                result = 11;    
                break;
            case 'Q':
                result = 12;    
                break;
            case 'K':
                result = 13;    
                break;
            case 'A':
                result = 14;    
                break;
            case '2':
                result = 15;    
                break;
            default:
                result = 0;
                break;
        }
    }
    
    return result;
}

int get_card_value(playing_card *card, char* str)
{
    int size = 0;
    int len = strlen(str);
    for(int i = 0; i < len; i++)
    {
        if(str[i] != ' ')
        {
            size++;
        }
    }
    card->type = get_type(size, len);
    card->value = get_value(str);
    return 0;
}

int main()
{
    char card_input[100] = {0};
    playing_card cards[2];

    memset(cards, 0, sizeof(playing_card) * 2);
    if(gets(card_input) == NULL)
    {
        return -1;
    }
    
//     printf("%s", card);
    char *split1 = strtok(card_input, "-");
    char *split2 = NULL;
    get_card_value(&cards[0], split1);
    
    if((split2 = strtok(NULL, "-")) != NULL)
    {
        get_card_value(&cards[1], split2);
    }
    
//     for(int i = 0; i < 2; i++)
//     {
//          printf("card[%d] type = %d, value = %d \n", i, cards[i].type, cards[i].value);
//     }
    
    if(cards[0].type >= 4)                 //第一手牌为炸弹 
    {
        if(cards[0].type > cards[1].type)    //第一手牌为王炸
        {
            printf("%s", split1);
        }
        else if(cards[0].type == cards[1].type)    //类型相同比较大小
        {
            if(cards[0].value > cards[1].value)
            {
                printf("%s", split1);
            }
            else
            {
                printf("%s", split2);
            }
        }
        else if(cards[1].type >= 4 && cards[1].type > cards[0].type) //第二手为炸弹
        {
            printf("%s", split2);
        }
        else                                        //不同类型,且不为炸弹,无法比较
        {
            printf("ERROR");
        }
    }
    else if(cards[0].type < 4)                        //第一手不为炸弹
    {
        if(cards[0].type == cards[1].type)            //相同类型比较
        {
            if(cards[0].value > cards[1].value)        
            {
                printf("%s", split1);
            }
            else
            {
                printf("%s", split2);
            }
        }
        else if(cards[1].type >= 4)                    //第二手为炸弹,一定大于第一手
        {
            printf("%s", split2);
        }
        else
        {
            printf("ERROR");
        }
    }
   
    
    return 0;
}