XOR 연산
시간 제한2초메모리 제한1024 MB
모든 원소가 0인 수열 B에서 b_i와 b_j에 a_i xor a_j를 동시에 xor하는 연산으로 만들 수 있는 서로 다른 B의 개수를 998244353으로 나눈 나머지로 구합니다.
문제
정수 이 개 주어진다. 처음에 모든 원소가 0인 정수열 이 있다.
한 번의 연산에서는 서로 다른 두 인덱스 와 를 고른 뒤, 다음 두 가지 변경을 동시에 수행한다.
- 를 로 바꾼다.
- 를 로 바꾼다.
여기서 는 비트별 XOR 연산이다. 예를 들어 이며, 이기 때문이다.
길이가 인 두 수열은 어떤 인덱스 ()에서 값이 다를 때 서로 다른 것으로 본다.
연산을 0번 이상 수행해서 얻을 수 있는 서로 다른 수열 의 개수를 구하라. 답은 으로 나눈 나머지를 출력한다.
입력
첫째 줄에 정수 ()이 주어진다. 둘째 줄에는 정수 ()이 주어진다.
출력
얻을 수 있는 서로 다른 수열 의 개수를 으로 나눈 나머지를 한 줄에 출력한다.