#CH0402P9287. Irrelevant Elements

Irrelevant Elements

Cannot parse: 1000ms error parsing memory

Description

年轻的密码分析学家Georgie正在研究产生从0到m – 1的随机数的不同的方案。他认为标准的随机数发生器不够好。所以,他发明了一个更为随机性的随机数产生方案。
首先,Georgie选择n并且产生n个从0到m – 1的随机数。产生的随机数为a1,a2,……,an。然后,Georgie计算出每对相邻的两个数的和。把初始的数组替换成为和的数组,这样得到n-1个整数:a1 + a2,a2 + a3,……,an–1 + an。然后对新的数组执行同样的操作,得到n-2个数。重复这个过程,直到只有一个数剩下。这个数取它摸m的值。这样给出这个过程产生的结果。
Georgie自豪地向他的计算机老师描述这个方案,却被老师指出这个方案有很多缺点。其中一个重要的缺点是这个过程的结果有时候甚至不依赖于最初产生的某些数。比如,当n=3并且m=2,这个时候,结果不依赖于a2。
现在,Georgie想要研究这个现象。如果产生的结果不依赖于初始数组的第i个元素,那么,他称这个元素为不相关的。他考虑不同的n和m,想要知道对于这些参数,哪些元素是不相关的。你帮他找出来。

Input Format

输入文件包含n和m(1 <= n <=100,000,2 <= m <= 10^9)。

Output Format

对于给定的n和m,输出文件的第一行输出初始数组中不相关元素的数量。第二行输出所有的i,其中第i个元素是不相关的。第二行输出的数必须升序排列并且相邻两数间严格用一个空格隔开。

3 2
1
2