1 #include<stdio.h>
2 #include<string.h>
3 int main()
4 {
5 int m[100][100],l,n,a[100],c[100],i,j,r,sum;
6 while(scanf("%d",&l)!=EOF&&l)
7 {
8 scanf("%d",&n);
9 for(i=0;i<n;i++)
10 scanf("%d",&c[i]);
11 c[n]=l;a[0]=c[0];
12 for(i=1;i<=n;i++)
13 a[i]=c[i]-c[i-1];
14 memset(m,0,sizeof(m));
15 for(r=1;r<=n;r++)
16 for(i=0;i<n;i++)
17 {
18 j=i+r;sum=0;
19 for(int k=i;k<=j;k++)
20 sum+=a[k];
21 m[i][j]=m[i][i]+m[i+1][j]+sum;
22 for(int k = i+1;k<j;k++)
23 {
24 int temp=m[i][k]+m[k+1][j]+sum;
25 if(temp<m[i][j])
26 {
27 m[i][j]=temp;
28 }
29 }
30 }
31 printf("The minimum cutting is %d.\n",m[0][n]);
32 }
33 return 0;
34 }