A group of connected 1s forms an island now your task is to complete the method findIslands which returns the no of islands present. The function takes three arguments the first is the boolean matrix A and then the next two arguments are N and M denoting the size of the matrix A .

Input:
The first line of input will be the no of test cases T then T test cases follow. The first line of each test case contains Two space separated integers N and M. Then in the next line are the NxM inputs of the matrix A separated by space .

Output:
The output in the expected output will be the total no of islands present.

Constraints:
1<=T<=100
1<=N,M<=50
0<=A[][]<=1

Example(To be used only for expected output) :
Input
1
3 3
1 1 0 0 0 1 1 0 1 Output
2

Explanation
The graph will look like
1 1 0
0 0 1
1 0 1
Here two islands will be formed
First island will be formed by elements { A[0][0] , A[0][1], A[1][2], A[2][2] }
Sec island will be formed by { A[2][0] }

Note:The Input/Ouput format and Example given are used for system's internal purpose, and should be used by a user for Expected Output only. As it is a function problem, hence a user should not read any input from stdin/console. The task is to complete the function specified, and not to write the full code.

Your code is concatenated with this (
C++
or Python
) code. Note: In case of C/C++/Java, your code is appended. And, in case of Python, your code is prepended.

Result:

It is recommended to test your code before clicking 'Submit' button!