import Data.IORef
import Control.Monad.Loops
main :: IO ()
main = do r <- newIORef 1024
whileM_ (do n <- readIORef r
return (n > 0))
(do n <- readIORef r
print n
modifyIORef r (`div` 2))