import Control.Applicative
g(0:r)=r++[0]
g(3:x:r)|0<x,x<3=0:0:g r|1<3=3:g(x:r)
g(x:r)=x:g r
g r=r
v
%[]|v
==g v
=foldr([id,(+)1,(*)2,(-)1]!!)0v
|1<3=g v
%[]
aW1wb3J0IENvbnRyb2wuQXBwbGljYXRpdmUKbWFpbiA9IGludGVyYWN0ICQgc2hvdyAuICgoWzAuLjldPj5bMF0pJSkgLiBtYXAgKHJlYWQgLiBwdXJlKQoKZygwOnIpPXIrK1swXQpnKDM6eDpyKXwwPHgseDwzPTA6MDpnIHJ8MTwzPTM6Zyh4OnIpCmcoeDpyKT14OmcgcgpnIHI9cgp2JSh4OnIpPWcoaW5pdCB2KytbeF0pJXIKdiVbXXx2PT1nIHY9Zm9sZHIoW2lkLCgrKTEsKCopMiwoLSkxXSEhKTB2fDE8Mz1nIHYlW10=