小民与C语言 II
题号:NC54785
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小民今天在C语言课上学习了位运算。
他写了一段程序,先读入了一个长度为n的整数数组ar,接着运行了以下代码:

int n, x, i;
for(i = x = 0; i < n; ++ i)
    x ^= ar[i];

他在控制台查看了x的值,然后发现他居然把输入文件误删了!
关于数组ar,除了长度n,小民还记得:
1) 数组中的每个数都是小于的非负整数;
2) 数组的第一个数为c。

因为小民记忆力不佳,他想知道是否存在数组ar满足他的记忆,你能帮帮他吗?


输入描述:

第一行包含4个整数n x b c,含义见题




输出描述:

输出一行,包含n个整数,表示ar的值,整数间用一个空格隔开

若不存在符合要求的ar,输出-1

若存在多组解,输出第2个位置值最小的解,若第2个位置值相等,输出第3个位置值最小的解,以此类推
示例1

输入

复制
1 12 4 12

输出

复制
12