# Translate stack machine like code to Brainf**k
# version 1.0.0
# author: Leonardone @ NEETSDKASU
puts 'Generate code by Translate stack machine like code to Brainf**k'
sourcecode = STDIN.read
puts sourcecode
codes = sourcecode.strip.split("\n").map(&:strip)
s = ''
codes.each do |x|
cmd, v = x.strip.split
c = v.to_i
case cmd
when 'INPUT'
s << ',>' * c
when 'SWAP'
s << '<' * c
s << '[' + '>' * c + '+' + '<' * c + '-]'
s << '>' * c.pred
s << '[' + '<' * c.pred + '+' + '>' * c.pred + '-]'
s << '>'
s << '[<+>-]'
when 'OUTPUT'
s << '<.[-]' * c
when 'PUSH'
c = v[1].ord if v =~ /^'.+/
s << '+' * c + '>'
when 'DUP'
s << '<' * c
s << '[' + '>' * c + '+>+<' + '<' * c + '-]'
s << '>' * c.succ
s << '[' + '<' * c.succ + '+' + '>' * c.succ + '-]'
end
end
puts s
IyBUcmFuc2xhdGUgc3RhY2sgbWFjaGluZSBsaWtlIGNvZGUgdG8gQnJhaW5mKiprCiMgdmVyc2lvbiAxLjAuMAojIGF1dGhvcjogTGVvbmFyZG9uZSBAIE5FRVRTREtBU1UKCnB1dHMgJ0dlbmVyYXRlIGNvZGUgYnkgVHJhbnNsYXRlIHN0YWNrIG1hY2hpbmUgbGlrZSBjb2RlIHRvIEJyYWluZioqaycKCnNvdXJjZWNvZGUgPSBTVERJTi5yZWFkCgpwdXRzIHNvdXJjZWNvZGUKCmNvZGVzID0gc291cmNlY29kZS5zdHJpcC5zcGxpdCgiXG4iKS5tYXAoJjpzdHJpcCkKCnMgPSAnJwoKY29kZXMuZWFjaCBkbyB8eHwKCWNtZCwgdiA9IHguc3RyaXAuc3BsaXQKCWMgPSB2LnRvX2kKCWNhc2UgY21kCgl3aGVuICdJTlBVVCcKCQlzIDw8ICcsPicgKiBjCgl3aGVuICdTV0FQJwoJCXMgPDwgJzwnICogYwoJCXMgPDwgJ1snICsgJz4nICogYyArICcrJyArICc8JyAqIGMgKyAnLV0nCgkJcyA8PCAnPicgKiBjLnByZWQKCQlzIDw8ICdbJyArICc8JyAqIGMucHJlZCArICcrJyArICc+JyAqIGMucHJlZCArICctXScKCQlzIDw8ICc+JwoJCXMgPDwgJ1s8Kz4tXScKCXdoZW4gJ09VVFBVVCcKCQlzIDw8ICc8LlstXScgKiBjCgl3aGVuICdQVVNIJwoJCWMgPSB2WzFdLm9yZCBpZiB2ID1+IC9eJy4rLwoJCXMgPDwgJysnICogYyArICc+JwoJd2hlbiAnRFVQJwoJCXMgPDwgJzwnICogYwoJCXMgPDwgJ1snICsgJz4nICogYyArICcrPis8JyArICc8JyAqIGMgKyAnLV0nCgkJcyA8PCAnPicgKiBjLnN1Y2MKCQlzIDw8ICdbJyArICc8JyAqIGMuc3VjYyArICcrJyArICc+JyAqIGMuc3VjYyArICctXScKCWVuZAplbmQKCnB1dHMgcw==