/*
逆序输入、DP
*/
#include<cstdio>
#include<cstring>#define INF 1<<30;
int a[5010],d[1100][5100];
int min(int a,int b)
{
return a>b?b:a;
}
int main()
{
int t,k,n;
scanf("%d",&t);
while(t--)
{
scanf("%d %d",&k,&n);
for(int i = n; i >= 1; i--)
scanf("%d",&a[i]);
for(int i = 0; i < k+9; i++)
for(int j = 0; j <= n; j++)
{
if(i==0) d[i][j] = 0;
else d[i][j] = INF;
}
for(int i = 1; i <= k+8; i++)
{
for(int j = i*3; j <= n; j++)
{
d[i][j] = min(d[i][j-1],d[i-1][j-2]+(a[j]-a[j-1])*(a[j]-a[j-1]));
}
}
printf("%d\n",d[k+8][n]);
}
return 0;
}