import Data.Array.Unboxed
import Control.Monad( replicateM)
main = do
    [h,w] <- return . map read . words =<< getLine
    lines <- replicateM h getLine
    let arr = listArray ((1,1),(h,w)) $ concat lines::UArray (Int,Int) Char
	proc (i,j)
	  | w==j&&i==h	= True
	  | w==j	= if arr!(i+1,j)=='.' then False else proc (i+1,j)
	  | h==i	= if arr!(i,j+1)=='.' then False else proc (i,j+1)
	  | otherwise   = if arr!(i,j+1)=='#'
			    then if arr!(i+1,j)=='#'
				    then False
				    else proc (i,j+1)
			    else if arr!(i+1,j)=='#'
				    then proc (i+1,j)
				    else False
    putStr $ if proc (1,1) then "Possible" else "Impossible"