#include<stdio.h>
//#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<stack>
#include<vector>
#include<queue>
using namespace std;
typedef long long ll;
const int N=1e5+10;
const int inf=0x3f3f3f3f;
int a[N];
int f[N];
int main()
{
int t;
cin>>t;
int count=1;
while(t--)
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
a[i]-=i;
}
f[1]=a[0]; //表示长度为1的严格上升序列的最后一个元素是a[0]
int len=1;
for(int i=1;i<n;i++) //遍历n次
{
int l=1,r=len;
while(l<=r)
{
int mid=(l+r)/2;
if(a[i]>=f[mid]) //判断条件,是否是严格上升
{
l=mid+1;
}
else
{
r=mid-1;
}
}
f[l]=a[i];
if(l>len) //每次循环,左端点会不停的加,如果l>len表示最长上升子序列又加入了一个新元素
{
len++; //len表示的就是最长上升子序列的长度
}
}
printf("Case #%d:\n%d\n",count++,n-len);
}
}