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
ilosc = input().split()
zapytania = int(ilosc[1])
ilosc = int(ilosc[0])
tak = [0 for i in range(ilosc+1)]
archiwum = [];
wynik = ""
nie = [1 for i in range(ilosc)]
nie_wiemy = [0 for i in range(ilosc+1)]
for i in range(zapytania):
    rodzaj = input().split()
    if rodzaj[0] == "+":
        if rodzaj[1] == rodzaj[2]:
            tak[int(rodzaj[1])-1] = 1
        elif tak[int(rodzaj[1])-1] == 1:
            tak[int(rodzaj[2])-1] = 1
        elif tak[int(rodzaj[2])-1] == 1:
            tak[int(rodzaj[1]) - 1] = 1
        else:
            nie_wiemy[int(rodzaj[1]) - 1] = 1;
            nie_wiemy[int(rodzaj[2]) - 1] = 1;
            nie[int(rodzaj[2]) - 1] = 0;
            nie[int(rodzaj[1]) - 1] = 0;
    elif rodzaj[0] == "-":
        nie[int(rodzaj[1])-1] = 1
        tak[int(rodzaj[1])-1] = 0
        nie_wiemy[int(rodzaj[1])-1] = 0
    else:
        if tak[int(rodzaj[1])-1] == 1:
            wynik += "1"
        elif nie[int(rodzaj[1])-1] == 1:
            wynik += "0"
        else:
            wynik += "?"
print(wynik)