주어진 N과 C에 대해 OR이 X, AND가 Y, XOR이 Z인 31비트 정수 N개 순서쌍의 수가 정확히 C가 되는 사전순 최소 (X, Y, Z)를 구하거나 존재하지 않으면 -1을 출력한다.
NNN개의 수로 이루어진 수열을 생각하자. 이 수열은 아래 네 조건을 모두 만족한다.
택희는 조건을 만족하는 수열을 모두 갖고 있었지만, 이사하면서 그중 일부를 잃어버렸다. XXX, YYY, ZZZ의 값만 알아내면 수열을 다시 전부 만들 수 있다.
택희가 기억하는 것은 두 가지다. 수열의 길이가 NNN이라는 것, 그리고 네 조건을 모두 만족하는 수열이 정확히 CCC개라는 것이다.
XXX, YYY, ZZZ가 어떤 값이었을지 찾아라. 수의 순서가 다르면 서로 다른 수열로 센다.
첫 줄에 수열의 길이 NNN과 조건을 만족하는 수열의 개수 CCC가 공백으로 구분되어 주어진다. (1≤N≤1051 \le N \le 10^51≤N≤105, 0≤C≤10180 \le C \le 10^{18}0≤C≤1018)
조건을 만족하는 수열이 정확히 CCC개가 되는 000 이상 231−12^{31} - 1231−1 이하의 정수 XXX, YYY, ZZZ를 공백으로 구분해 첫 줄에 출력한다.
조건을 만족하는 (X,Y,Z)(X, Y, Z)(X,Y,Z)가 여러 개라면 사전순으로 가장 앞서는 하나를 출력한다. 즉 XXX가 가장 작은 것을 고르고, 그런 것이 여럿이면 그중 YYY가 가장 작은 것을, 그래도 여럿이면 그중 ZZZ가 가장 작은 것을 고른다.
그러한 XXX, YYY, ZZZ가 없으면 −1-1−1 하나만 출력한다.