output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      H W
      A_1
      A_2
      \vdots
      A_H
attempt: print("fuck")
  
problem_description: Statement
  
  We have an H \times W grid, where each square is painted white or black in the
  initial state. Given are strings A_1, A_2, ..., A_H representing the colors of
  the squares in the initial state. For each pair (i, j) (1 \leq i \leq H, 1
  \leq j \leq W), if the j-th character of A_i is `.`, the square at the i-th
  row and j-th column is painted white; if that character is `#`, that square is
  painted black.
  
  Among the 2^{HW} ways for each square in the grid to be painted white or
  black, how many can be obtained from the initial state by performing the
  operations below any number of times (possibly zero) in any order? Find this
  count modulo 998,244,353.
  
    * Choose one row, then paint all the squares in that row white.
    * Choose one row, then paint all the squares in that row black.
    * Choose one column, then paint all the squares in that column white.
    * Choose one column, then paint all the squares in that column black.
samples: [{"input": "2 2\n    #.\n    .#", "output": "15\n    \n\nFor example, if we paint the second row black, the grid becomes:\n\n    \n    \n    #.\n    ##\n    \n\n* * *"}, {"input": "3 3\n    ...\n    ...\n    ...", "output": "230\n    \n\n* * *"}, {"input": "2 4\n    #...\n    ...#", "output": "150\n    \n\n* * *"}, {"input": "6 7\n    .......\n    .......\n    .#.....\n    ..#....\n    .#.#...\n    .......", "output": "203949910"}]