Угадай число, программа учитывает не все варианты
проблема в коде по следующей задаче:
Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n.
Беатриса пытается угадать это число, для этого она называет
некоторые множества натуральных чисел. Август отвечает Беатрисе YES, если среди
названных ей чисел есть задуманное или NO в противном случае.
После нескольких заданных вопросов Беатриса запуталась в том, какие вопросы она задавала и какие
ответы получила и просит вас помочь ей определить, какие числа мог задумать Август.
Входные данные
Первая строка входных данных содержит число n — наибольшее число, которое мог загадать Август.
Далее идут строки, содержащие вопросы Беатрисы. Каждая строка представляет собой набор чисел, разделённых
пробелами. После каждой строки с вопросом идет ответ Августа: YES или NO.
Наконец, последняя строка входных данных содержит одно слово HELP.
Выходные данные
Вы должны вывести (через пробел, в порядке возрастания) все числа, которые мог задумать Август.
Примеры
входные данные
10
1 2 3 4 5
YES
2 4 6 8 10
NO
HELP
выходные данные
1 3 5
Написала по ней код:
n=int(input())
mn=[]
a=[]
for i in range(1, n+1):
mn.append(i)
mn=set(mn)
x=set()
q=""
while q!="HELP":
q=input()
if q=="HELP":
break
else:
a.append(q)
for i in range(0, len(a)-1, 2):
if a[i+1]=="YES":
q=[]
w=a[i]
for j in range(len(w)):
if w[j]!=" ":
q.append(int(w[j]))
#
cu=list(mn)
for k in range(len(cu)):
if cu[k] not in q:
mn.discard(cu[k])
else:
q=[]
w=a[i]
for j in range(len(w)):
if w[j]!=" ":
q.append(int(w[j]))
#
for k in range(len(q)):
if q[k] in mn:
mn.discard(q[k])
print(*sorted(mn))
Но в приведённом в задаче тесте программа вместо 1 3 5 выводит 3 5, к тому же на 2 последних тестах проверяющей системы(не известны) работает лишком долго. Помогите пожалуйста!!!