DOUBT IN MARLA

Please can anyone tell me what is wrong in my code ?

#include<bits/stdc++.h>

using namespace std;
long long int a[1000][1000];
long long int mini=1e9;

long long int ans=0;
long long int temp=0;

void island(long long int i,long long int j,long long int n,long long int m)
{
if(i<0 || i>=n || j<0 || j>=m ||a[i][j]!=mini)
{
ans=max(ans,temp);
return;
}
temp++;

a[i][j]=0;

island(i+1,j,n,m);
island(i-1,j,n,m);
island(i,j+1,n,m);
island(i,j-1,n,m);

}

void find(long long int N,long long int M)
{
for(long long int i=0;i<N;i++)
{
for(long long int j=0;j<M;j++)
{
if(a[i][j]==mini)
{
island(i,j,N,M);
temp=0;
}
}
}
return;
}
int main()
{
long long int n,m;
cin>>n>>m;

for(long long int i=0;i<n;i++)
{
    for(long long int j=0;j<m;j++)
    {
        a[i][j]=1;
        if(a[i][j]<mini)
        {
            mini=a[i][j];
        }
    }
}
find(n,m);

cout<<mini<<" "<<ans;

}