def floodFill(self, image: List[List[int]], sr: int, sc: int, color: int) -> List[List[int]]:
    n = len(image)
    m = len(image[0])
    queue = [[sr, sc]]
    while len(queue) > 0:
      x, y = queue.pop(0)
      for xx, yy in [(1, 0), (-1, 0), (0, 1), (0, -1)]:
        p, q = x + xx, y + yy
        if p >= 0 and p < n and q >= 0 and q < m and image[p][q] != color and image[x][y] == image[p][q]:
          queue.append([p, q])
      image[x][y] = color
    return image