#include <cstdio>
#include <algorithm>
int M[1010][1010], n, m, V, cnt, F, dx[5] = {0, -1, 0, 1, 0}, dy[5] = {0, 0, 1, 0, -1}, sx, sy;
int f(int a, int b, int k)
{
    if( M[a+dx[k]][b+dy[k]] == 2  || M[a+dx[k]][b+dy[k]] == 3) return 1;
    if( M[a+dx[k]][b+dy[k]] == 5 ) return 1 + f(a+dx[k], b+dy[k], k);
    else return 0;
}
void dfs(int a, int b)
{
    M[a][b] = 5;
    for( int i = 1 ; i < 5 ; i++ )
        if( M[a+dx[i]][b+dy[i]] == 1 ) dfs(a+dx[i], b+dy[i]);
}
void prt()
{
    int i, j;
    for( i = 1 ; i <= n ; i++, puts("" )) for( j = 1 ; j <= m ; j++ )
        printf("%d ", M[i][j]);
}
int main()
{
    freopen(".12.in","r",stdin);
    freopen(".12.out","w",stdout);
    int i, j, k, chk;
    scanf("%d%d",&n,&m);
    for( i = 1 ; i <= n ; i++ ) for( j = 1 ; j <= m ; j++ )
        scanf("%d", &M[i][j]);
    for( i = 1 ; i <= n ; i++ ) for( j = 1 ; j <= m ; j++ )
        if( M[i][j] == 1 ){ dfs(i, j); i=10000; break; }
    for( i = 1 ; i <= n ; i++ ) for( j = 1 ; j <= m ; j++ )
        if( M[i][j] == 1 ) { puts("-1"); return 0; }
    for( i = 1 ; i <= n ; i++ ) for( j = 1 ; j <= m ; j++ )
    {
        if( M[i][j] )
        {
            for( k = 1, cnt = 0, chk = 0 ; k <= 4 ; k++ )
                if( M[i+dx[k]][j+dy[k]] ) cnt++, chk+=k;
            if( cnt >= 3 || cnt == 1)
            {
                M[i][j] = 2;
                if( cnt == 3 || cnt == 1 ) V++, M[i][j] = 3;
            }
            else if( cnt == 2 && ( chk%2==1 ) ) M[i][j] = 2;
        }
    }
    if( V == 0 || V == 2 )
    {
        int ans = 0;
        for( i = 1 ; i <= n ; i++ ) for( j = 1 ; j <= m ; j++ )
            if( M[i][j] == 2 || M[i][j] == 3 )
            {
                for( k = 1 ; k <= 4 ; k++ )
                {
                    int t = f(i, j, k);
                    if( t ) ans = !ans ? t : std::__gcd(ans,t);
                }
            }
        if( ans < 2 ) puts("-1");
        else
        {
            for( i = 2 ; i <= ans ; i++ )
                if( ans%i == 0 ) printf("%d ", i);
        }
    }
    else puts("-1");
}
