Language: C

z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}

Compiler output:
main.c:1:1: warning: data definition has no type or storage class
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      | ^
main.c:1:1: error: type defaults to 'int' in declaration of 'z' [-Wimplicit-int]
main.c:1:10: error: type defaults to 'int' in declaration of 'a' [-Wimplicit-int]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |          ^
main.c:1:15: error: type defaults to 'int' in declaration of 'b' [-Wimplicit-int]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |               ^
main.c:1:24: error: type defaults to 'int' in declaration of 'm' [-Wimplicit-int]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                        ^
main.c:1:26: error: type defaults to 'int' in declaration of 'i' [-Wimplicit-int]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                          ^
main.c:1:28: error: type defaults to 'int' in declaration of 'j' [-Wimplicit-int]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                            ^
main.c:1:30: error: return type defaults to 'int' [-Wimplicit-int]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                              ^~~~
main.c: In function 'main':
main.c:1:30: error: type of 'n' defaults to 'int' [-Wimplicit-int]
main.c:1:43: error: implicit declaration of function 'scanf' [-Wimplicit-function-declaration]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                           ^~~~~
main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
  +++ |+#include <stdio.h>
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
main.c:1:43: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                           ^~~~~
main.c:1:43: note: include '<stdio.h>' or provide a declaration of 'scanf'
main.c:1:63: error: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                               ^~~~~~
main.c:1:63: note: include '<stdio.h>' or provide a declaration of 'printf'
main.c:1:63: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch]
main.c:1:63: note: include '<stdio.h>' or provide a declaration of 'printf'
main.c:1:95: error: assignment to 'int' from 'int *' makes integer from pointer without a cast [-Wint-conversion]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                                                               ^
main.c:1:103: error: assignment to 'int *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                                                                       ^
main.c:1:121: error: implicit declaration of function 'fmax' [-Wimplicit-function-declaration]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                                                                                         ^~~~
main.c:1:1: note: include '<math.h>' or provide a declaration of 'fmax'
  +++ |+#include <math.h>
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
main.c:1:121: warning: incompatible implicit declaration of built-in function 'fmax' [-Wbuiltin-declaration-mismatch]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                                                                                         ^~~~
main.c:1:121: note: include '<math.h>' or provide a declaration of 'fmax'
main.c:1:137: error: implicit declaration of function 'getchar' [-Wimplicit-function-declaration]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                                                                                                         ^~~~~~~
main.c:1:137: note: 'getchar' is defined in header '<stdio.h>'; this is probably fixable by adding '#include <stdio.h>'
main.c:1:152: error: implicit declaration of function 'fmin' [-Wimplicit-function-declaration]
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                                                                                                                        ^~~~
main.c:1:152: note: include '<math.h>' or provide a declaration of 'fmin'
main.c:1:152: warning: incompatible implicit declaration of built-in function 'fmin' [-Wbuiltin-declaration-mismatch]
main.c:1:152: note: include '<math.h>' or provide a declaration of 'fmin'
main.c:1:182: error: expected ':' before ')' token
    1 | z[4000],*a=z,*b=z+2000,m,i,j;main(n){for(;scanf("%d",&n),n;m=!printf("%d\n",m))for(i=++n;i--;j=a,a=b,b=j)for(j=n;j--;)m=fmax(m,b[j]=i<n&getchar()>45?1+fmin(fmin(b[j+1],a[j+1]),a[j])):0;}
      |                                                                                                                                                                                      ^
      |                                                                                                                                                                                      :