You are given an m x n binary grid, where each 1 represents a brick and 0 represents an empty space. A brick is stable if:
- It is directly connected to the top of the grid, or
- At least one other brick in its four adjacent cells is stable
You are also given an array hits, which is a sequence of erasures we want to apply. Each time we want to erase the brick at location hits[i] = (rowi, coli). The brick on that location (if it exists) will disappear. Some other bricks may no longer be stable because of that erasure and will fall.
Once a brick falls, it is immediately erased from the grid (i.e., it does not land on other stable bricks).
Return an array result, where each result[i] is the number of bricks that will fall after the ith erasure is applied.
Note: An erasure may refer to a location with no brick, and if it does, no bricks drop.
Input & Output
Constraints
- m == grid.length
- n == grid[i].length
- 1 ≤ m, n ≤ 200
- grid[i][j] is 0 or 1
- 1 ≤ hits.length ≤ 4 × 104
- hits[i].length == 2
- 0 ≤ xi ≤ m - 1
- 0 ≤ yi ≤ n - 1