CF2075E XOR Matrix

Description

For two arrays $ a = [a_1, a_2, \dots, a_n] $ and $ b = [b_1, b_2, \dots, b_m] $ , we define the XOR matrix $ X $ of size $ n \times m $ , where for each pair $ (i,j) $ ( $ 1 \le i \le n $ ; $ 1 \le j \le m $ ) it holds that $ X_{i,j} = a_i \oplus b_j $ . The symbol $ \oplus $ denotes the bitwise XOR operation. You are given four integers $ n, m, A, B $ . Count the number of such pairs of arrays $ (a, b) $ such that: - $ a $ consists of $ n $ integers, each of which is from $ 0 $ to $ A $ ; - $ b $ consists of $ m $ integers, each of which is from $ 0 $ to $ B $ ; - in the XOR matrix formed from these arrays, there are no more than two distinct values.

Input Format

The first line contains one integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. Each test case consists of one line containing four integers $ n, m, A, B $ ( $ 2 \le n, m, A, B \le 2^{29} - 1 $ ).

Output Format

For each test case, output one integer — the number of pairs of arrays $ (a, b) $ that satisfy all three conditions. Since this number can be very large, output it modulo $ 998244353 $ .