喵喵体
题号:NC20947
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

喵喵认为,真正的粉丝,就算语句是乱序的,也是能够得到正确的意思,所以他认为”两个黄鹂鸣翠柳”和”柳翠两个鸣黄鹂”是同一句话,现在有一个包含n个不同字的句子,为了方便之后的操作,我们用不同数字来表示不同的字,从小到大编号,喵喵对这句话进行了m次操作,每次他会把编号为 i 的字放进来或者拿掉, 然后随便排列剩下的字构成一句话,问在上述过程中,一共产生了几句本质不同的话(即表达不是同一个意思的话)。

输入描述:

对于每组数据。
第一行包含两个正整数 n,m(n,m<=100000),表示一句话字的个数和操作的次数。
接下来 m 行,每行包含一个正整数 x,表示让编号为 x 的字放进来或者拿掉。

输出描述:

每组数据包括一个整数,表示本质不同的话的数量。
示例1

输入

复制
5 10
3
2
2
3
5
2
5
2
4
4

输出

复制
7

说明

按照顺序我们产生的话为1245,145,1245,12345,1234,134,1345.12345,1235,12345
本质不同的有145,134,1235,1245,1234,1345,12345一共7种