#include <stdio.h>
f(int m,int n,int**a,int*r){for(*r=m;n*m;a[m][n]?m--:--n);*r-=m;}

/* usage:
    m = number of rows
    n = number of columns
    a = 1-based 2D array such that a[i][j] gives the value at the ith row and jth column
    r = address of return value */

int main()
{
    int flat[4*4] = {0, 0, 1, 0,
                     0, 0, 1, 0,
                     1, 0, 1, 1,
                     1, 1, 1, 1};
    int*twoD[4] = {flat-1,flat+3,flat+7,flat+11};
    int ret;
    f(4,4,twoD-1,&ret);
    printf("%d", ret);
    return 0;
}
