시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 426 34 24 6.234%

문제

N개의 수를 가진 수열을 생각해보자. 이 수열은 아래와 같은 네 조건을 만족해야 한다.

  1. 수열의 각 수는 모두 0 이상 231 - 1이하의 정수이다.
  2. 수열의 모든 수를 bitwise OR 연산하면 X이다.
  3. 수열의 모든 수를 bitwise AND 연산하면 Y이다.
  4. 수열의 모든 수를 bitwise XOR 연산하면 Z이다.

택희는 위의 조건을 만족하는 모든 수열을 갖고 있었지만, 이번에 이사를 하면서 그 중 일부를 잃어버리고 말았다. 하지만 택희는 X, Y, Z의 값만 알아낼 수 있다면, 다시 수열을 모두 만들어낼 수 있을 것이라 판단했다.

택희는 수열이 N개의 수로 이루어져 있다는 사실과, 위 조건을 모두 만족하는 모든 수열의 개수가 정확히 C개라는 사실을 알고 있다.

택희를 위해 X, Y, Z는 어떤 값이었을지 찾아주도록 하자.

입력

첫 줄에 수열의 길이 N, 조건을 만족하는 수열의 개수 C가 주어진다. (1 ≤ N ≤ 105, 0 ≤ C ≤ 1018)

출력

조건을 만족하는 수열의 개수가 정확히 C개가 되는 0 이상 231 - 1이하의 X, Y, Z 값을 공백으로 구분하여 첫 줄에 출력한다.

답이 여러 가지라면 임의의 한 가지를 출력한다.

그러한 X, Y, Z의 값이 존재하지 않는 경우엔 -1 하나만을 출력한다.

예제 입력 1

9 70110209207109375

예제 출력 1

1318354628 43018944 177498820

예제 입력 2

100000 1000000000000000000

예제 출력 2

-1