一条街道上有 n 个路灯排成一排,编号 1,2,…,n 。小 Z 喝醉了,初始在时刻 0 时站在 1 号路灯旁。
小 Z 从某个时间 t0 (t0≥0) 开始游走。在时间 t0 之后,小 Z 每隔一个单位时间就会移动到相邻的路灯旁。如果小 Z 在时间 t 在 i 号路灯旁,则他在时间 t+1 必然移动到 i−1 号路灯或 i+1 号路灯旁。特殊的,小 Z 不会移动到街道边界之外,即他始终只停留在路灯 1 和 n 之间(包含边界)。例如,小 Z 在时间 t0+1 必然在 2 号路灯旁。
你得知了一些路人提供的信息,每条信息都可以用整数 pi 和 qi 表示,代表在 qi 时刻某位路人看到到小 Z 在路灯 pi 旁边。你想找到小 Z 开始到处走动的时间 t0 。在收到信息的同时,你还想根据当前收到的信息推断 t0 可能的最大值和最小值。
路人提供的信息也有可能不一致。一旦你发现提供的信息有矛盾,只需停止计算并报告信息不一致。
第一行包含两个整数 n 和 m,代表路灯的数量和操作次数。
接下来 m 行分别包含一个操作 opi,格式为以下其一:
对于每个 min 或 max 操作,输出问题的答案。
对于 max 操作,如果 t0 可以为任意大的数(即不存在一个有限的最大值),那么答案为字符串 inf。
如果当前收到的信息不一致,那么答案为字符串 bad。
input
10 7
clue 1 3
min
clue 3 5
max
clue 10 6
max
min
output
1
3
bad
bad
对于所有数据, 10≤n≤109,
1≤m≤2×105,
1≤pi≤n,
0≤qi≤109,
存在至少一个 min 或 max 操作,
opi 为 clue、min 或 max之一。