Help me in solving LARGESTY problem

My issue

I am finding a bit such that some element in array have it as set and some as unset
But i am getting wrong ans

My code

#include <iostream>
#include<bits/stdc++.h>
#define ll long long int
#define mod 1000000007
using namespace std;
int main() {
    cin.tie(0)->sync_with_stdio(false);
	int t;cin>>t;
	while(t--){
	    int n;cin>>n;
	    int x;cin>>x;
	    int A[n];
	    for(int i=0;i<n;i++)cin>>A[i];
	    int B[32]={0};
	    for(int i=0;i<n;i++){
	        for(int j=0;j<32;j++){
	            if(A[i]%2)B[j]++;
	            A[i]/=2;
	        }
	    }
	    int ans=0;
	    for(int i=0;i<32;i++){
	        if(B[i]!=n && B[i]!=0){
        	    if(x&(1<<i)){
        	        ans=max(ans,x^(1<<i));
        	    }
        	    else ans=x;
	        }
	    }
	    cout<<ans<<endl;
	}
	cerr << "Time : " << 1000 * ((double)clock()) / CLOCKS_PER_SEC << "ms" << endl;
	return 0;
}

Problem Link: Largest Y Practice Coding Problem