for(int i=1;i<=n;i++)F[i][0][0]=0;F[1][1][1]=0;
for(int i=2;i<=n;i++)
for(int j=1;j<=m;j++)
{
F[i][j][0]=max(F[i-1][j][0],F[i-1][j][1]);
F[i][j][1]=max(F[i-1][j-1][0]+0,F[i-1][j-1][1]+a[i]);
}
ans=max(F[n][m][1],F[n][m][0]);
memset(F,INF,sizeof(F));
for(int i=1;i<=n;i++)F[i][0][0]=0;F[1][1][1]=a[1];
//唯一的不同就是初始化让选择1开头时让他有效用,因为这种情况考虑的就是连接成了环状他肯定不是第一个了
for(int i=2;i<=n;i++)
for(int j=1;j<=m;j++)
{
F[i][j][0]=max(F[i-1][j][0],F[i-1][j][1]);
F[i][j][1]=max(F[i-1][j-1][0]+0,F[i-1][j-1][1]+a[i]);
}
ans=max(ans,F[n][m][1]);