Слон или не слон?

Условие

Три слепых мудреца ощупывают предмет и пытаются понять, слон это все-таки или не слон? Всем известно, что у слонов обычно бывают:

один хобот;

один хвост;

4 ноги;

2 уха;

2 глаза;

1 рот.

Ну бывают еще бивни, но это как получится, у кого-то уже сломались, у кого-то еще не выросли. Бивни (и другие части тела) считать не будем, они не определяющие.

Вам передаются наблюдения мудрецов. Нужно определить, получилось ли им наблюдать хоть одного целого слона? Или, возможно, нескольких? Или не получилось. Если до обеда так ни одного слона и не нашли, пора заканчивать.

Формат ввода

Вводятся пары строк, в первой из которых стоит целое число — количество нащупанных частей тела, во второй — название части тела, количество которой ощупали в предыдущей строке. До тех пор, пока не будет вместо части тела введено слово ОБЕД.

Формат вывода

Если получился хотя бы один полнокомплектный слон, то ввод данных нужно прекратить и вывести: Есть слон! и их количество.

Если до появления слова ОБЕД вместо названия так ни одного целого слона и не нашли, вывести: Какие-то слоны нецелые. Пошли обедать.

Пример 1

Ввод

1

нога

1

рот

2

хобот

3

нога

2

бивень

2

ухо

2

глаз

1

хвост

4

нога

4

ОБЕД

Вывод

Есть слон!

1

Вот мой код:

PythonВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

def solution():
    trunks = tails = legs = ears = mouths = eyes = 0
 
    while True:
        quantity = int(input())
        str_ = input()
 
        if str_ == 'ОБЕД':
            break
 
        if 'хобот' in str_:
            trunks += quantity
 
        if 'хвост' in str_:
            tails += quantity
 
        if 'ног' in str_:
            legs += quantity
 
        if 'ух' in str_:
            ears = quantity
 
        if 'рот' in str_:
            mouths += quantity
 
        if 'глаз' in str_:
            eyes += quantity
 
    result = min(trunks, tails, (legs // 4), (ears // 2),
                 mouths, (eyes // 2))
 
    if trunks < 1 or tails < 1 or legs < 4 or 
            legs < 4 or mouths < 1 or eyes < 2 or result < 1:
        print('Какие-то слоны нецелые. Пошли обедать.')
 
    else:
        print('Есть слон!')
        print(result)
 
 
solution()

, он не проходит 12 тест.

Тест 12

Ввод

4

рот

4

хобот

4

хвост

5

хвост

16

нога

5

ухо

3

нога

5

ухо

2

рот

4

рот

3

ухо

8

глаз

3

ОБЕД

2

хобот

3

рот

Ожидаемый вывод

Есть слон!

4

Вывод

Есть слон!

1

Скорее всего ошибка логическая, но вот в упор её не вижу