#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 1000000000;
const int maxn = 100;
ll a[100011];
ll b[100011];
ll c[100011];
ll d[100011];
int main()
{
int t;
cin>>t;
int n;
for(int tim=1; tim<=t; tim++)
{
cin>>n;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
for(int i=1; i<=n; i++)
cin>>a[i];
if(n==1)//n为1的情况进行特判一下。
{
if(a[1]%2==1)
cout<<"Case "<<tim<<": Alice"<<endl;
else
cout<<"Case "<<tim<<": Bob"<<endl;
continue;
}
int j;
for(int i=2; i<=n; i++)//从前往后扫,将各个上升序列用b数组标记一下
{
//cout<<i<<endl;
//cout<<a[i-1]<<" "<<a[i]<<endl;
if(a[i]>a[i-1])
{
ll p=1;
b[i-1]=0;
for( j=i; j<n; j++)
{
if(a[j+1]>a[j])
{
//cout<<a[j]<<" "<<a[j+1]<<endl;
b[j]=p;
p++;
continue;
}
else
{
b[j]=p;
break;
}
}
i=j+1;
}
}
if(a[n]>a[n-1])
b[n]=b[n-1]+1;
for(int i=n,k=1; i>=1; i--)
{
c[i]=a[k];
k++;
}
// for(int i=1; i<=n; i++)
// cout<<b[i]<<" ";
// cout<<endl;
int j1;
for(int i=2; i<=n; i++)//从后往前扫,将上升序列用d数组标记一下。
{
if(c[i]>c[i-1])
{
ll p=1;
d[i-1]=0;
for( j1=i; j1<n; j1++)
{
if(c[j1+1]>c[j1])
{
d[j1]=p;
//cout<<d[j]<<endl;
p++;
continue;
}
else
{
d[j1]=p;
break;
}
}
i=j1+1;
}
}
if(c[n]>c[n-1])
d[n]=d[n-1]+1;
ll res=0;
for(int i=1,k=n; i<=n; i++,k--)//将前后标记进行更新,保留较大的。
{
if(b[i]<d[k])
b[i]=d[k];
res+=abs(a[i]-b[i]);//统计与最终状态与初始状态差值求和
}
//cout<<res<<endl;
if(res%2==1)//操作数为奇数A赢
cout<<"Case "<<tim<<": Alice"<<endl;
else
cout<<"Case "<<tim<<": Bob"<<endl;
}
return 0;
}
//5 1 8 9 4 5 6 3 2 1
//1 2 3 6 5 4 9 8 1 5