20220273 - 人工智能的谎言

Time Limit

1000 毫秒

Memory Limit

128 MB

通过次数

6

提交次数

15

神犇用自己高深的编程技术实现了一个具有独立思维的人工智能,但这个人工智能学会了说谎。首先,神犇给出一个范围[1,n],人工智能会在该范围内生成一个整数k,而后人工智能会给神犇m条描述,每条描述为一下三种之一:

1、1 x y:表示x \le k \le y

2、2 x:表示x \le k \le n

3、3 x:表示1 \le k \le x

神犇调试后发现人工智能仅会在描述中对x,y的值说谎,现在他想纠正这个坏毛病,所以他首先要知道m条描述中最多有多少条是错误的,此时k可以有多少种取值?从而给人工智能增加一个随动阈值使得它不会轻易说谎。

Input

第一行,两个整数,分别为n,m

接下来m行,每行表示一个描述,其格式如题所述。

对于100%的数据:

1\le n \le 10^6

1\le x \le y \le n

1\le m \le 2×10^5

Output

共一行有由单个空格分隔的两个整数,分别表示最多有多少条错误描述、此时k有多少种取值。

注意:若指令全部正确,则题目应理解为错误指令最多0条,使得指令错误数达到0的k值有多少种?

Examples

Input

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

Output

4 3