import Control.Monad
import Control.Applicative
import Data.List
import qualified Data.Vector.Unboxed as Vec
import Debug.Trace as De

--getIntList = map read . words <$> getLine


listToTriple abc =(a,b,c)
    where [a,b,c]=abc
main :: IO ()

fir (a,_,_)=a
sec (_,b,_)=b
trd (_,_,c)=c


sol i y z
    | i<0 = ""
    | otherwise=("+ 3 4 6\n"++(rui i)++(pt "+" 6 7 8)++(pt "<" 8 z (y+i))++(pt "<" 8 z 6)++(rui i)++(pt "+" 6 7 7))++(sol (i-1) y z)

rui i
    | i==0 = []
    |otherwise = "+ 6 6 6\n" ++ (rui (i-1))

pt c x y z= c++" "++show(x)++" "++show(y)++" "++show(z)++"\n"

kak i j
    |i==99 = []
    |j==199 = kak (i-1) 229
    |otherwise = (pt "+" i j 8)++(pt "<" 4 8 8)++(pt "+" (i+j) 8 (i+j)) ++ (kak i (j-1))

sai i
    | i==300 = []
    |otherwise = (pt "+" i i i)++(pt "+" i (i-1) (i-1))++ (sai (i-1))
main = do
    putStrLn("4862")
    putStrLn ("+ 0 1 4")
    putStrLn ("< 3 4 4")
    putStrLn ("+ 4 0 0")
    putStrLn ("+ 4 1 1")
    putStr(sol 29 100 0)
    putStrLn("+ 3 3 7")
    putStr(sol 29 200 1)
    putStr(kak 129 229)
    putStr(sai 358)
    putStrLn("+ 2 300 2")


    

