拜托茨村正在進行現代化改造。最新政府計畫的目標是為那些尚未擁有電腦的村民和小鎮居民提供電腦。巴伊塔扎(Bajtazar)負責監督其中一個參與計畫的村莊——拜托希采(Bajtoszyc)——目前該村沒有任何居民擁有電腦。
拜托希采有 $n$ 名居民,巴伊塔扎為了方便起見,將他們編號為 $1$ 到 $n$ 的整數。起初,沒有任何居民擁有電腦。巴伊塔扎的任務是處理以下三種事件:
- $+ a_i \ b_i$:一台電腦被送往拜托希采的居民手中。然而,巴伊塔扎不知道電腦是送給編號為 $a_i$ 還是 $b_i$ 的居民。可能出現 $a_i = b_i$ 的情況,此時電腦肯定送給了編號為 $a_i$ 的居民。可以確定的是,電腦一定會送給目前沒有電腦的居民。
- $- c_i$:編號為 $c_i$ 的居民電腦壞了。可以確定的是,該居民之前擁有電腦(但現在不再擁有,因此未來可能會再收到一台新的)。
- $? d_i$:巴伊塔扎必須(利用目前為止所有已知的資訊)判斷編號為 $d_i$ 的居民:肯定擁有電腦、肯定沒有電腦,或是無法確定是否擁有電腦。
請寫一個程式來幫助巴伊塔扎回答這些問題!
輸入格式
輸入的第一行包含兩個整數 $n$ 和 $q$ ($1 \le n \le 300\,000$; $1 \le q \le 1\,000\,000$),分別代表拜托希采的居民人數以及巴伊塔扎必須處理的事件數量。
接下來的 $q$ 行包含題目敘述中提到的事件描述。在所有事件中,均滿足 $1 \le a_i, b_i, c_i, d_i \le n$。
保證巴伊塔扎至少會被詢問一次他的知識狀態,即輸入包含至少一個 '?' 類型的事件。同時保證至少存在一種電腦發放的過程,使得電腦總是發給當前沒有電腦的人,且電腦總是壞在當前擁有電腦的人身上。
輸出格式
輸出應包含一個長度等於 '?' 事件數量的字串。如果對於第 $i$ 次詢問,該居民肯定擁有電腦,則該字串的第 $i$ 個字元應為 '1'。如果該居民肯定沒有電腦,則該字串的第 $i$ 個字元應為 '0'。如果該居民可能擁有也可能沒有電腦,則該字串的第 $i$ 個字元應為 '?'。
範例
輸入 1
5 11 ? 1 + 1 2 + 2 3 ? 2 + 3 1 - 2 ? 1 ? 2 ? 3 + 2 2 ? 2
輸出 1
0?1011
說明
起初沒有人擁有電腦,因此第一個問題的答案是否定的,輸出中的第一個字元是 '0'。隨後發放了兩台電腦,我們被問及第二位居民是否擁有電腦。有可能兩次發放中的其中一次是給他的,但也可能電腦分別發給了第一位和第三位居民。因此,我們無法明確判斷第二位居民是否擁有電腦,答案為 '?'。請注意,在下一次發放後,將會清楚地顯示第二位居民當時必然已經擁有電腦,但在詢問時巴伊塔扎無法得知這一點。