input = '12
····
VAR I
·FOR I=1 TO 31
»»»»IF !(I MOD 3) THEN
··PRINT "FIZZ"
··»»ENDIF
»»»»····IF !(I MOD 5) THEN
»»»»··PRINT "BUZZ"
··»»»»»»ENDIF
»»»»IF (I MOD 3) && (I MOD 5) THEN
······PRINT "FIZZBUZZ"
··»»ENDIF
»»»»·NEXT'
prog = input.split ( "\n " )
line_count = prog[ 0 ] .to_i
subst = prog[ 1 ] .length
clean_lines = prog[ 2 , prog.length - 2 ] .collect { | line| line.gsub ( / »| ·/ , '' ) }
res = [ ]
counter = 0
clean_lines.each do | line|
case
when line.match ( / ^IF/ ) || line.match ( / ^FOR/ )
counter = counter + subst
when line.match ( / ^ENDIF/ ) || line.match ( / ^NEXT/ )
counter = counter - subst
end
l = counter > 0 ? 1 .upto ( counter) .collect { | x| ' ' } .join + line : line
res << l
end
puts res.join ( "\n " )
aW5wdXQgPSAnMTIKwrfCt8K3wrcKVkFSIEkKwrdGT1IgST0xIFRPIDMxCsK7wrvCu8K7SUYgIShJIE1PRCAzKSBUSEVOCsK3wrdQUklOVCAiRklaWiIKwrfCt8K7wrtFTkRJRgrCu8K7wrvCu8K3wrfCt8K3SUYgIShJIE1PRCA1KSBUSEVOCsK7wrvCu8K7wrfCt1BSSU5UICJCVVpaIgrCt8K3wrvCu8K7wrvCu8K7RU5ESUYKwrvCu8K7wrtJRiAoSSBNT0QgMykgJiYgKEkgTU9EIDUpIFRIRU4KwrfCt8K3wrfCt8K3UFJJTlQgIkZJWlpCVVpaIgrCt8K3wrvCu0VORElGCsK7wrvCu8K7wrdORVhUJwoKcHJvZyA9IGlucHV0LnNwbGl0KCJcbiIpCmxpbmVfY291bnQgPSBwcm9nWzBdLnRvX2kKc3Vic3QgPSBwcm9nWzFdLmxlbmd0aApjbGVhbl9saW5lcyA9IHByb2dbMiwgcHJvZy5sZW5ndGggLSAyXS5jb2xsZWN0IHsgfGxpbmV8ICAgICBsaW5lLmdzdWIoL8K7fMK3LywgJycpIH0KCnJlcyA9IFtdCmNvdW50ZXIgPSAwCmNsZWFuX2xpbmVzLmVhY2ggZG8gfGxpbmV8CiAgY2FzZQogIHdoZW4gbGluZS5tYXRjaCgvXklGLykgfHwgbGluZS5tYXRjaCgvXkZPUi8pCiAgICBjb3VudGVyID0gY291bnRlciArIHN1YnN0CiAgd2hlbiBsaW5lLm1hdGNoKC9eRU5ESUYvKSB8fCBsaW5lLm1hdGNoKC9eTkVYVC8pCiAgICBjb3VudGVyID0gY291bnRlciAtIHN1YnN0CiAgZW5kCiAgbCA9IGNvdW50ZXIgPiAwID8gMS51cHRvKGNvdW50ZXIpLmNvbGxlY3QgeyB8eHwgJyAnIH0uam9pbiArIGxpbmUgOiBsaW5lCiAgcmVzIDw8IGwKZW5kCgpwdXRzIHJlcy5qb2luKCJcbiIp