For this Question: You are given arrays A, B each containing N integers. You have to create an array C of N integers where C<sub>i</sub> = A<sub>i</sub> & B<sub>i</sub>. (Here, & denotes the bitwise operation). You can shuffle elements of A and B however you want. Find the maximum value of C<sub>1</sub> & C<sub>2</sub> & C<sub>3</sub>. .. &C<sub>n</sub>.<b>User Task:</b>
Since this will be a functional problem, you don't have to take input. You have to complete the function <b>MaxAnd()</b> that takes the array A and B of size N as parameters.

<b>Constraints:</b>
1 &le; T &le; 10<sup>5</sup>
1 &le; N &le; 10<sup>5</sup>
1 &le; A<sub>i</sub>, B<sub>i</sub> &le; 10<sup>9</sup>For each test case, print maximum value in a separate line.Sample Input:-
1
2
3 2
2 3
Sample Output:-
2

Explanation:
The best configuration here will be have A<sub>1</sub> = 3, and B<sub>1</sub> = 3, and A<sub>2</sub> = 2 and B<sub>2</sub> = 2. So the array C will be [3, 2]. So the answer will be 2 (3&2=2)., I have written this Solution Code: class Solution {

    
    public void MaxAnd(int []a,int []b,int n) {
             // int n = a[].length;
        int[] bit = new int[32];
        for (int i = 0; i < n; ++i) {
            int x = a[i];
            for (int j = 0; j < 32; ++j) {
                if ((x & 1L << j) != 0) {
                    ++bit[j];
                }
            }
        }
        for (int i = 0; i < n; ++i) {
            int x = b[i];
            for (int j = 0; j < 32; ++j) {
                if ((x & 1L << j) != 0) {
                    ++bit[j];
                }
            }
        }
        int ans = 0;
        for (int i = 0; i < bit.length; ++i) {
            if (bit[i] == 2 * n) {
                ans += 1 << i;
            }
        }
        System.out.println(ans);
               
    }
}
 , In this Programming Language: Java, Now tell me if this Code is compilable or not?