using System.Collections.Generic;
public static void Main()
var dict = new Dictionary<int, int>();
for(int i = 0; i < 5; i++)
for(int j = 0; j < 5; j++)
if(m[i,j] != 0 && !v[i,j])
dict[count] = DFS(ref m, ref v, i, j, 5, 5);
Console.WriteLine(" " + i + " " + j+ " " + dict[count] );
Console.WriteLine("count" + count);
foreach(var k in dict.Keys)
Console.WriteLine(k + " " + dict[k]);
public static int DFS(ref int[,] m, ref bool[,] v, int i, int j, int r, int c)
Console.WriteLine(i + " " + j + " visited");
var neighbourR = new int[] { 0, 1, 1, 1};
var neighbourC = new int[] { 1, -1, 0, 1};
for(int k = 0; k < 4; k++)
var curI = i + neighbourR[k];
var curJ = j + neighbourC[k];
if((curI < r) && (curJ >=0) && (curJ < c))
if(m[curI, curJ] != 0 && !v[curI, curJ])
var t = DFS(ref m , ref v, curI, curJ, 5, 5);