Showing wrong ans

#include
#include
using namespace std;

int profit(int a[],int k,int n){
int p[k+1][n+1];
for(int i=0;i<=k;i++){
p[i][0]=0;
}
for(int i=0;i<n;i++){
p[0][i]=0;
}
for(int i=1;i<=k;i++){
for(int j=1;j<=n;j++){
int maxsofar=INT_MIN;
for(int m=0;m<j;m++){
maxsofar=max(maxsofar,a[j]-a[m]+p[i-1][m]);
}
p[i][j]=max(maxsofar,p[i][j-1]);
}
}
return p[k][n-1];
}

using namespace std;
int main() {
int t;
cin>>t;
int k,n;
for(int i=0;i<t;i++){
cin>>k>>n;
int a[n];
for(int j=0;j<n;j++){
cin>>a[j];
}
cout<<profit(a,k,n);

}
return 0;

}

add endl;
print for each test case in new line