import macros, strutils # https://github.com/nim-lang/Nim/issues/1512 proc macrobust0(raw_input: string) = var output = "" proc p1(a:string) = output.add(a) proc p2(a:string) = p1(a) proc p3(a:string) = p2(a) proc p4(a:string) = p3(a) proc p5(a:string) = p4(a) proc p6(a:string) = p5(a) proc p7(a:string) = p6(a) proc p8(a:string) = p7(a) proc p9(a:string) = p8(a) proc p10(a:string) = p9(a) proc p11(a:string) = p10(a) proc p12(a:string) = p11(a) proc p13(a:string) = p12(a) proc p14(a:string) = p13(a) proc p15(a:string) = p14(a) proc p16(a:string) = p15(a) proc p17(a:string) = p16(a) proc p18(a:string) = p17(a) proc p19(a:string) = p18(a) proc p20(a:string) = p19(a) let input = $raw_input for a in input.split(): p20(a) p19(a) p18(a) p17(a) p16(a) p15(a) p14(a) p13(a) p12(a) p11(a) p10(a) p9(a) p8(a) p7(a) p6(a) p5(a) p4(a) p3(a) p2(a) p1(a) echo output macro macrobust(raw_input: untyped): untyped = var output = "" proc p1(a:string) = output.add(a) proc p2(a:string) = p1(a) proc p3(a:string) = p2(a) proc p4(a:string) = p3(a) proc p5(a:string) = p4(a) proc p6(a:string) = p5(a) proc p7(a:string) = p6(a) proc p8(a:string) = p7(a) proc p9(a:string) = p8(a) proc p10(a:string) = p9(a) proc p11(a:string) = p10(a) proc p12(a:string) = p11(a) proc p13(a:string) = p12(a) proc p14(a:string) = p13(a) proc p15(a:string) = p14(a) proc p16(a:string) = p15(a) proc p17(a:string) = p16(a) proc p18(a:string) = p17(a) proc p19(a:string) = p18(a) proc p20(a:string) = p19(a) let input = $raw_input for a in input.split(): p20(a) p19(a) p18(a) p17(a) p16(a) p15(a) p14(a) p13(a) p12(a) p11(a) p10(a) p9(a) p8(a) p7(a) p6(a) p5(a) p4(a) p3(a) p2(a) echo output discard result macrobust """ fdsasadfsdfa sadfsdafsdaf dsfsdafdsfadsfa fsdaasdfasdf fsdafsadfsad asdfasdfasdf fdsasdfasdfa sadfsadfsadf sadfasdfsdaf sadfsdafsdaf dsfasdaf sadfsdafsadf fdsasdafsadf fdsasadfsdaf sdfasadfsdafdfsa sadfsadfsdaf sdafsdaffsda sdfasadfsadf fsdasdafsdfa sdfasdfafsda sdfasdafsadf sdfasdafsdaf sdfasdafsdaf """ macrobust0 """ fdsasadfsdfa sadfsdafsdaf dsfsdafdsfadsfa fsdaasdfasdf fsdafsadfsad asdfasdfasdf fdsasdfasdfa sadfsadfsadf sadfasdfsdaf sadfsdafsdaf dsfasdaf sadfsdafsadf fdsasdafsadf fdsasadfsdaf sdfasadfsdafdfsa sadfsadfsdaf sdafsdaffsda sdfasadfsadf fsdasdafsdfa sdfasdfafsda sdfasdafsadf sdfasdafsdaf sdfasdafsdaf """