input: from typing import List
  
  def meets_criteria(matrix: List[List[int]]) -> bool:
      """
      You are provided with a 2D grid matrix of size m x n. Check if each cell matrix[i][j] meets the following criteria:
  
      It should be equal to the cell directly below it: matrix[i][j] == matrix[i + 1][j] (if such a cell exists).
      It should be different from the cell to its immediate right: matrix[i][j] != matrix[i][j + 1] (if such a cell exists).
  
      If all cells fulfill these criteria, return true; otherwise, return false.
  
      Examples:
      >>> grid = [[1,0,2],[1,0,2]]
      true
      >>> grid = [[1,1,1],[0,0,0]]
      false
      >>> grid = [[1],[2],[3]]
      false
  
      Constraints:
      1 <= n, m <= 10
      0 <= matrix[i][j] <= 9
      """
output:     
      m = len(matrix)
      n = len(matrix[0])
  
      for i in range(m):
          for j in range(n):
              if i < m - 1:
                  if matrix[i][j] != matrix[i + 1][j]:
                      return False
              if j < n - 1:
                  if matrix[i][j] == matrix[i][j + 1]:
                      return False
  
      return True
  