ekat _ [] = []
ekat n (x:xs) = (map (take n)(take n (iterate tail (cycle x )))) ++ (ekat n xs)
mrep 1 = [[1]]
mrep n = ekat n (map (n:)(mrep (n-1)))
pretty x = sequence_ (map print x)
main = do x <- getNum ;pretty (mrep x)
where getNum :: IO Int
getNum = do{args<-getArgs;readIO (args!!0) }

引数nに対してnPnを出力。