Youhane Playing beatmania IVDX
题号:NC15491
时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 114 M,其他语言228 M
64bit IO Format: %lld

题目描述

べィスドロップ〜
周所周知,KONMAI出品的Beatmania IVDX是一款非常经典的街机音乐游戏,已经有数十年的历史。优酱最近想要开始体验这款游戏,但是她知道自己的水平实在是太差了,以至于连最低级别的段位认定都不能合格。为了让自己省一些钱(要知道因为beatmania IVDX是街机游戏,所以每玩一道至少都是需要投6块钱的),她决定自己制作一个模拟器来在家练习。

在实现这个模拟器的时候,优酱突发奇想:如果这个游戏不只有七个按键和一个转盘的话,会产生多少种具有特定排列的谱面呢?为了方便叙述,让我们把谱面抽象成一个大小的网格(横行,纵列,你可以把每一列看成每一个按键,每一行看成一个时间点),行和列的编号都是从起算的,行从上到下数到,列从左到右数到,棋盘的每一个格子都可以是黑色(表示有note)或者白色(没有note)。

我们定义,在满足下述全部条件的时候,谱面上出现了一个"Youhane Pattern":

1. 存在一个闭区间,使得这些行都有且仅有两个黑色格子,而铺面中的其他行不存在黑色格子。
2. 存在一个行编号,使得:
    
    * 对于任意存在黑色格子的行,把这行的黑色格子所对应的列编号,以及黑色格子之间的那些白色格子(如果有)对应的列编号加入一个集合,我们称之为`。
    * 任取之上的两个有黑色格子的行,令上方的行为,下方的行为,则的子集。
    * 任取之下的两个有黑色格子的行,令上方的行为,下方的行为,则的子集。
  
上面的对于“Youhane Pattern”的形式化描述可能有点过于复杂了,为了帮助你理解,优酱画了一个“Youhane Pattern”的样例:

优酱关心的是,给出谱面的大小,有多少种放note的方案,使得谱面呈现“Youhane Pattern”呢?请输出方案数模的结果。

输入描述:

单文件,多数据。在文件中,每行包含两个用空格分开的整数,其中

输出描述:

请输出题目要求的答案,独占一行。
示例1

输入

复制
1 1
4 4
3 5

输出

复制
0
485
451