作为礼物的字符串
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

讨厌鬼收到了一个长度为 n 的字符串 S 作为礼物。

讨厌鬼非常喜欢回文串 , 于是他想知道 S 是不是回文串。

现在有 m 条已知的信息 , 每条信息告诉讨厌鬼 这个子串是一个回文串,字符串下标从 1 开始。

讨厌鬼想知道能否通过这些信息确定这个字符串是一个回文串。

输入描述:

第一行两个整数 n,m , 含义如题面所示。

接下来 m行 , 每行两个整数 l,r , 表示 这个子串是一个回文串。

输出描述:

第一行如果可以确定是回文串就输出 YES , 否则输出 NO

第二行输出有多少确定的  , 满足
示例1

输入

复制
6 3
1 2
2 6
1 5

输出

复制
YES
6
示例2

输入

复制
6 2
1 2
2 6

输出

复制
NO
2

说明

仅可以确定s[1] 和s[6]相等