牛牛的说谎机器
题号:NC238088
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛在和它的机器玩猜数字,可是机器好像坏了……
具体来说,机器首先会随机生成一个 的数字 k,紧接着机器会给牛牛 m 条指令,指令的格式有如下三种:
1、op x y;这里, 代表有 
2、op x;这里, 代表有 
3、op x;这里, 代表有 
牛牛知道这台机器已经学会了说谎,所以它所描述的指令可能都是错误的,现在牛牛想知道机器错误的程度以便来制定修理它的方案。
所以牛牛想请你告诉它,当 k 这个范围内的值时,机器最多有多少条指令是错误的,而 k 又有多少种取值方式使得机器的错误指令数最多。

输入描述:

第一行两个整数代表 n,m 
接下来 m 行每行一条指令,指令格式见题面。
保证:

输出描述:

输出共一行两个整数,分别代表机器最多的错误指令数,以及有多少种 k 的取值会使得机器的错误指令数最多。
示例1

输入

复制
9 5
1 3 6
2 7
1 2 3
3 2
1 5 8

输出

复制
4 3

说明

最多的错误指令数为 4。
使得错误指令数最多的取值有 3 种,分别是:
  取值为 1,此时第 1、2、3、5 条指令是错误的。
  取值为 4,此时第 2、3、4、5 条指令是错误的。
  取值为 9,此时第 1、3、4、5 条指令是错误的。