#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define pb push_back
#define rep(i,a,b) for(int i=a ;i<b;i++)

//#include <boost/functional/hash.hpp>
/*
int construct_segment_tree(int arr[] ,int st[] ,int start ,int end ,int index) //initial value start=0 ,end=n-1 ,index=0
  { if(start=end)
     {
      st[index]= arr[start] ;
      return st[index] ;
     } int mid=(start+end)>>2 ;
     st[index]=construct_segment_tree(arr,st,start,mid,2*index+1)+construct_segment_tree(arr,st,mid+1,end,2*index+2) ;
     return st[index] ;
  }
int getsum(int st[] ,int qs ,int qe ,int start ,int end ,int index ) // initial  start=0 ,end=n-1 ,index=0
{
  if(start>qe||end<qs)
    return 0 ;
  if(start>=qs && end<=qe)
     return st[index] ;
   int mid=(start+end)>>2 ;
   return getsum(st,qs,qe,start,mid,2*index+1)+getsum(st,qs,qe,,mid+1,end,2*index+2) ;
}
void upadaterec(int st[] ,int start ,int end ,int i ,int index ,int diff)
{

}*/


/*auto Z_array_generate(string s)
 {
  int n=s.size() ;
  std::vector<int> z(n);
  int l,r ;l=r=0 ;
  for(int i=1;i<n;i++)
  { if(i>r)
       {l=r=i ;
        while(r<n && s[r-l]==s[r] )
            {r++ ;}
        z[i]=r-l ;
        r-- ;}
    else{int index=i-l ;
        if(z[index]<r-i+1)
           {z[i]=z[index] ; }
        else
           {l=i ;
           while(r<n && s[r-l]==s[r])
               {r++ ;}
           z[i]=r-l ;
           r-- ;}
      }
  }
  return z ;
 }
 void z_algorithm(string s ,string pat)
 {
  string concate=pat+"$"+s ;
  auto z=Z_array_generate(concate) ;
  int n=s.size() ;
  int m=pat.size() ;
  for(int i=m;i<n+m+1;i++)
    if(z[i]==m)
      cout<<"pattern found at index-"<<i-(m+1)<<'\n';
    cout<<endl;
 }*/
void yes()
{
    cout << "YES" << '\n' ;
}
void no()
{
    cout << "NO" << '\n' ;
}

int gcd(ll a, ll b)
{
    if(b == 0)
        return a ;
    return gcd(b, a % b) ;
}

bool compare(pair<ll,int>&a ,pair<ll,int>&b)
{
  return a.first<=b.first ;
}

struct s
{ 
  int x ,y ;
};
bool check(ll x)
 {
   ll p=sqrt(x) ;
   return p*p==x ?true :false ;
 }
 
int pow(int a,int b)
{ if(b==0)
   return 1 ;
  ll y=pow(a,b/2) ;
  if(b%2)
  {
    return (((y*y)%mod)*a)%mod ;
  }
   return (y*y)%mod;
}
ll pow(int x)
 {
  if(x==0)
    return 1 ;
  if(x&1)
    return pow(x/2)*pow(x/2)*2 ;
  return pow(x/2)*pow(x/2) ;
 }


void main_()
{ 
int n ;cin>>n ;
int arr[n] ;
for(int i=0;i<n;i++)
  {
   cin>>arr[i] ;
  }
if(arr[0]!=arr[1])
{
  if(arr[0]==arr[2])
  {
    cout<<2<<endl; 
    return ;
  }
  cout<<1<<endl;
  return ;
}
for(int i=2;i<n;i++)
 if(arr[i]!=arr[0])
   {
    cout<<i+1<<endl ;
    return ;
   }
}  
 


int main()
{

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
  
    int test = 1 ;
    cin>>test ;
    while(test--)
    {   
          main_();
    }
    return 0;
}
### Prompt

Please formulate a Cpp solution to the following problem:

You are given an array a consisting of n (n ≥ 3) positive integers. It is known that in this array, all the numbers except one are the same (for example, in the array [4, 11, 4, 4] all numbers except one are equal to 4).

Print the index of the element that does not equal others. The numbers in the array are numbered from one.

Input

The first line contains a single integer t (1 ≤ t ≤ 100). Then t test cases follow.

The first line of each test case contains a single integer n (3 ≤ n ≤ 100) — the length of the array a.

The second line of each test case contains n integers a_1, a_2, …, a_n (1 ≤ a_i ≤ 100).

It is guaranteed that all the numbers except one in the a array are the same.

Output

For each test case, output a single integer — the index of the element that is not equal to others.

Example

Input


4
4
11 13 11 11
5
1 4 4 4 4
10
3 3 3 3 10 3 3 3 3 3
3
20 20 10


Output


2
1
5
3

### Response

```cpp
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define pb push_back
#define rep(i,a,b) for(int i=a ;i<b;i++)

//#include <boost/functional/hash.hpp>
/*
int construct_segment_tree(int arr[] ,int st[] ,int start ,int end ,int index) //initial value start=0 ,end=n-1 ,index=0
  { if(start=end)
     {
      st[index]= arr[start] ;
      return st[index] ;
     } int mid=(start+end)>>2 ;
     st[index]=construct_segment_tree(arr,st,start,mid,2*index+1)+construct_segment_tree(arr,st,mid+1,end,2*index+2) ;
     return st[index] ;
  }
int getsum(int st[] ,int qs ,int qe ,int start ,int end ,int index ) // initial  start=0 ,end=n-1 ,index=0
{
  if(start>qe||end<qs)
    return 0 ;
  if(start>=qs && end<=qe)
     return st[index] ;
   int mid=(start+end)>>2 ;
   return getsum(st,qs,qe,start,mid,2*index+1)+getsum(st,qs,qe,,mid+1,end,2*index+2) ;
}
void upadaterec(int st[] ,int start ,int end ,int i ,int index ,int diff)
{

}*/


/*auto Z_array_generate(string s)
 {
  int n=s.size() ;
  std::vector<int> z(n);
  int l,r ;l=r=0 ;
  for(int i=1;i<n;i++)
  { if(i>r)
       {l=r=i ;
        while(r<n && s[r-l]==s[r] )
            {r++ ;}
        z[i]=r-l ;
        r-- ;}
    else{int index=i-l ;
        if(z[index]<r-i+1)
           {z[i]=z[index] ; }
        else
           {l=i ;
           while(r<n && s[r-l]==s[r])
               {r++ ;}
           z[i]=r-l ;
           r-- ;}
      }
  }
  return z ;
 }
 void z_algorithm(string s ,string pat)
 {
  string concate=pat+"$"+s ;
  auto z=Z_array_generate(concate) ;
  int n=s.size() ;
  int m=pat.size() ;
  for(int i=m;i<n+m+1;i++)
    if(z[i]==m)
      cout<<"pattern found at index-"<<i-(m+1)<<'\n';
    cout<<endl;
 }*/
void yes()
{
    cout << "YES" << '\n' ;
}
void no()
{
    cout << "NO" << '\n' ;
}

int gcd(ll a, ll b)
{
    if(b == 0)
        return a ;
    return gcd(b, a % b) ;
}

bool compare(pair<ll,int>&a ,pair<ll,int>&b)
{
  return a.first<=b.first ;
}

struct s
{ 
  int x ,y ;
};
bool check(ll x)
 {
   ll p=sqrt(x) ;
   return p*p==x ?true :false ;
 }
 
int pow(int a,int b)
{ if(b==0)
   return 1 ;
  ll y=pow(a,b/2) ;
  if(b%2)
  {
    return (((y*y)%mod)*a)%mod ;
  }
   return (y*y)%mod;
}
ll pow(int x)
 {
  if(x==0)
    return 1 ;
  if(x&1)
    return pow(x/2)*pow(x/2)*2 ;
  return pow(x/2)*pow(x/2) ;
 }


void main_()
{ 
int n ;cin>>n ;
int arr[n] ;
for(int i=0;i<n;i++)
  {
   cin>>arr[i] ;
  }
if(arr[0]!=arr[1])
{
  if(arr[0]==arr[2])
  {
    cout<<2<<endl; 
    return ;
  }
  cout<<1<<endl;
  return ;
}
for(int i=2;i<n;i++)
 if(arr[i]!=arr[0])
   {
    cout<<i+1<<endl ;
    return ;
   }
}  
 


int main()
{

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
  
    int test = 1 ;
    cin>>test ;
    while(test--)
    {   
          main_();
    }
    return 0;
}
```