There is an N × N mosaic of square solar cells (1 ≤ N ≤ 2,000). Each solar cell is either good or bad. There are W (1 ≤ W ≤ 50,000) bad cells. You need to find the largest square within the mosaic containing at most L (0 ≤ L ≤ W) bad cells.
For each input instance, the output will be a single integer representing the area of the largest square that contains no more than L bad solar cells.
The mosaic is 4× 4, and contains the following arrangement of good and bad cells ('G' represents good, and 'B' represents bad):
BGGG
GBBG
GGGG
GGGG
Several 2× 2 squares at the bottom contain no bad solar cells, but all 3 × 3 squares contain at least two bad solar cells.