{-# LANGUAGE BangPatterns #-}
module Main where

import Data.List
import System.Environment

sum' xs = foldl' (+) 0 xs

sumf_meshes f a b w0 = (s0, w0) : go s0 w0 where
	s0 = sum' . map f . takeWhile (<= b) $ [a + k*w0 | k <- map fromIntegral [0..]]
	go s w = (s', w') : go s' w' where
		s' = (+s) . sum' . map f . takeWhile (<= b) $ [a + w' + k*w | k <- map fromIntegral [0..]]
		w' = w/2

main = do
	str:_ <- getArgs
	let n = read str
	    f u = (exp . negate $ u ) / u
	mapM_ print . take n $ sumf_meshes f 1 23 22
	return ()