Given a 2D binary matrix filled with 0's and 1's, write a program to find the largest square containing only 1's and return its area.

Example 1

Input: 
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 1 0 0

Output: 4

Example 2

Input: 
0  1  1  0  1  1
1  1  1  0  1  0
0  0  1  1  1  0
1  1  1  1  1  0
1  1  1  1  1  1
0  0  0  0  0  0

Output: 9