B 又是一个简单的位运算

题目描述
有一只蒟蒻又在进行位运算,对于a1,a2,⋯,an,ai∈0,1,它想要计算如下内容:
a1⨁a2⨁a3⋯⨁ana1∣a2∣⋯∣ana1 & a2 & ⋯ & an
但是由于n实在是太大了,以及这只蒟蒻实在是太弱了,因此ta只知道a1,a2,⋯,an中有多少个1。

输入格式
本题存在多组数据,对于每组数据:

一行,两个用空格分隔的整数n,x,表示a1,a2,⋯,an中有x个1。(那a1,a2,⋯,an中自然就有n−x个0)

输出格式
对于每组数据:

一行,三个空格分隔的整数,分别表示a1⨁a2⨁a3⋯⨁an、a1∣a2∣⋯∣an、a1&a2&⋯&an。

样例输入
5 3
6 4
样例输出
1 1 0
0 1 0
样例解释
1⨁1⨁1⨁0⨁0=1
1∣1∣1∣0∣0=1
1&1&1&0&0=0
数据范围
对于100%的数据1≤n≤104,数据组数≤103。

Hint
众所周知位运算满足交换律~

但这道题或许有着非常简单,代码非常短的做法呢~

以及还记得多组数据怎么读入吗~

while(scanf("%d%d",&n,&x)!=EOF){
// do something
}