最初天佑有一个空的多重整数集。朋友们向他提出以下类型的t个查询:
+ ai 将非负整数ai添加到多重整数集。注意,多重整数集中同一个整数可能会多次出现。
- ai 从多重整数集中删除一个非负整数ai。可以保证,在多重整数集中至少有一个ai。
? s 计算多重整数集中匹配模式s(由0和1组成)的整数的个数(可重复)。在模式中,0代表偶数,而1代表奇数。如果十进制记数法中从右端开始的第i个数字与模式从右端开始的第i个奇偶匹配,则整数x与模式s匹配。如果模式比整数短,则在左端用0进行补充。类似地,如果整数比模式短,则在整数的左端用0进行补充。
例如,如果模式是
s = 010,则整数
92、
2212、
50和
414与模式匹配,而整数
3、
110、
25和
1030不匹配。
输入的第一行包含整数t(1 ≤ t ≤ 100 000)-天佑必须执行的操作数量。
接下来的t行查询。第i行以字符ci开始,表示对应操作的类型。如果ci等于'+'或'-',则后面有一个空格和一个整数ai(0 ≤ ai < 1018)不带前导零(除非是0)。如果ci等于'?',则后面是一个空格和一组的0和1的序列,给出了长度不超过18的模式。
保证至少有一个类型为“?”的查询。
可以保证,任何时候从多重集中删除某个整数,集合中至少还有一个该整数存在。
样例2输入
4
+ 200
+ 200
- 200
? 0
样例2输出
1
注意:第三类查询才进行整数匹配。查询按照输入的顺序进行。
1. 1 and 241.
2. 361.
3. 101 and 361.
4. 361.
5.
4000.