#bINGCHAJIlydlt40x4105. 奇偶游戏 Parity Game

奇偶游戏 Parity Game

题目描述

小 A 和小 B 在玩一个游戏。

首先,小 A 写了一个由 0011 组成的序列 SS,长度为 NN

然后,小 B 向小 A 提出了 MM 个问题。

在每个问题中,小 B 指定两个数 llrr,小 A 回答 S[lr]S[l \sim r] 中有奇数个 11 还是偶数个 11

机智的小 B 发现小 A 有可能在撒谎。

例如,小 A 曾经回答过 S[13]S[1 \sim 3] 中有奇数个 11S[46]S[4 \sim 6] 中有偶数个 11,现在又回答 S[16]S[1 \sim 6] 中有偶数个 11,显然这是自相矛盾的。

请你帮助小 B 检查这 MM 个答案,并指出在至少多少个回答之后可以确定小 A 一定在撒谎。

即求出一个最小的 kk,使得 0101 序列 SS 满足第 1k1 \sim k 个回答,但不满足第 1k+11 \sim k+1 个回答。

输入格式

第一行包含一个整数 NN,表示 0101 序列长度。

第二行包含一个整数 MM,表示问题数量。

接下来 MM 行,每行包含一组问答:两个整数 llrr,以及回答 evenodd,用以描述 S[lr]S[l \sim r] 中有偶数个 11 还是奇数个 11

输出格式

输出一个整数 kk,表示 0101 序列满足第 1k1 \sim k 个回答,但不满足第 1k+11 \sim k+1 个回答,如果 0101 序列满足所有回答,则输出问题总数量 MM

样例

输入样例:

10
5
1 2 even
3 4 odd
5 6 even
1 6 even
7 10 odd

输出样例:

3

样例解释

N=10,M=5N=10, M=5

回答:

  1. S[12]S[1 \sim 2] 有偶数个 11
  2. S[34]S[3 \sim 4] 有奇数个 11
  3. S[56]S[5 \sim 6] 有偶数个 11
  4. S[16]S[1 \sim 6] 有偶数个 11
  5. S[710]S[7 \sim 10] 有奇数个 11

前三个回答可以同时成立,但加入第四个回答时会发生矛盾:

  • 前两个回答:S[12]S[1\sim2] 偶数,S[34]S[3\sim4] 奇数 → S[14]S[1\sim4] 奇数
  • 第三个回答:S[56]S[5\sim6] 偶数 → S[16]S[1\sim6] 奇数
  • 但第四个回答要求 S[16]S[1\sim6] 偶数,矛盾。

所以最小的 k=3k=3,即前 33 个回答可以成立,第 44 个回答导致矛盾。

数据范围

  • N109N \le 10^9
  • M5000M \le 5000

时空限制

  • 时间限制:1 秒
  • 空间限制:64 MB

所有题目已整理完毕。