Problem:
Score : 300 points

Problem Statement

Given an integer N, find the base -2 representation of N.

Here, S is the base -2 representation of N when the following are all satisfied:

S is a string consisting of 0 and 1.

Unless S = 0, the initial character of S is 1.

Let S = S_k S_{k-1} ... S_0, then S_0 \times (-2)^0 + S_1 \times (-2)^1 + ... + S_k \times (-2)^k = N.

It can be proved that, for any integer M, the base -2 representation of M is uniquely determined.

Constraints

Every value in input is integer.

-10^9 \leq N \leq 10^9

Input

Input is given from Standard Input in the following format:

N

Output

Print the base -2 representation of N.

Sample Input 1

-9

Sample Output 1

1011

As (-2)^0 + (-2)^1 + (-2)^3 = 1 + (-2) + (-8) = -9, 1011 is the base -2 representation of -9.

Sample Input 2

123456789

Sample Output 2

11000101011001101110100010101

Sample Input 3

0

Sample Output 3

0

Solution in JavaScript (node.js v5.12) (judge verdict: Accepted)

parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"Focm":[function(require,module,exports) {
var n={};!function(n){"use strict";var t=function(n){this.compose=n},r=new t(function(n){return function(t){return function(r){return n(t(r))}}});n.compose=function(n){return n.compose},n.Semigroupoid=t,n.semigroupoidFn=r}(n["Control.Semigroupoid"]=n["Control.Semigroupoid"]||{}),function(t){"use strict";var r=n["Control.Semigroupoid"],e=function(n,t){this.Semigroupoid0=n,this.identity=t},a=new e(function(){return r.semigroupoidFn},function(n){return n});t.Category=e,t.identity=function(n){return n.identity},t.categoryFn=a}(n["Control.Category"]=n["Control.Category"]||{}),function(t){"use strict";(n["Data.Boolean"]=n["Data.Boolean"]||{}).otherwise=!0}(),function(t){"use strict";(n["Data.Ring"]=n["Data.Ring"]||{}).intSub=function(n){return function(t){return n-t|0}}}(),function(n){"use strict";n.intAdd=function(n){return function(t){return n+t|0}},n.intMul=function(n){return function(t){return n*t|0}}}(n["Data.Semiring"]=n["Data.Semiring"]||{}),function(t){"use strict";(n["Data.Unit"]=n["Data.Unit"]||{}).unit={}}(),function(t){"use strict";(n["Data.Show"]=n["Data.Show"]||{}).showIntImpl=function(n){return n.toString()}}(),function(t){"use strict";var r=n["Data.Show"],e=(n["Data.Symbol"],n["Record.Unsafe"],n["Type.Data.RowList"],function(n){this.show=n}),a=new e(r.showIntImpl);t.Show=e,t.show=function(n){return n.show},t.showInt=a}(n["Data.Show"]=n["Data.Show"]||{}),function(t){"use strict";var r=n["Data.Unit"];n["Data.Show"];t.unit=r.unit}(n["Data.Unit"]=n["Data.Unit"]||{}),function(t){"use strict";var r=n["Data.Semiring"],e=(n["Data.Symbol"],n["Data.Unit"],n["Record.Unsafe"],n["Type.Data.Row"],n["Type.Data.RowList"],function(n,t,r,e){this.add=n,this.mul=t,this.one=r,this.zero=e}),a=new e(r.intAdd,r.intMul,1,0);t.Semiring=e,t.add=function(n){return n.add},t.zero=function(n){return n.zero},t.mul=function(n){return n.mul},t.one=function(n){return n.one},t.semiringInt=a}(n["Data.Semiring"]=n["Data.Semiring"]||{}),function(t){"use strict";var r=n["Data.Ring"],e=n["Data.Semiring"],a=(n["Data.Symbol"],n["Data.Unit"],n["Record.Unsafe"],n["Type.Data.RowList"],function(n,t){this.Semiring0=n,this.sub=t}),o=new a(function(){return e.semiringInt},r.intSub);t.Ring=a,t.sub=function(n){return n.sub},t.ringInt=o}(n["Data.Ring"]=n["Data.Ring"]||{}),function(t){"use strict";n["Control.Category"],n["Data.Boolean"],n["Data.Ord"],n["Data.Ring"];t.flip=function(n){return function(t){return function(r){return n(r)(t)}}},t.const=function(n){return function(t){return n}}}(n["Data.Function"]=n["Data.Function"]||{}),function(t){"use strict";n["Data.Functor"],n["Control.Semigroupoid"];var r=n["Data.Function"],e=n["Data.Unit"],a=function(n){return n.map};t.Functor=function(n){this.map=n},t.map=a,t.void=function(n){return a(n)(r.const(e.unit))}}(n["Data.Functor"]=n["Data.Functor"]||{}),function(t){"use strict";n["Control.Apply"];var r=n["Control.Category"],e=n["Data.Function"],a=n["Data.Functor"],o=function(n){return n.apply};t.Apply=function(n,t){this.Functor0=n,this.apply=t},t.apply=o,t.applySecond=function(n){return function(t){return function(i){return o(n)(a.map(n.Functor0())(e.const(r.identity(r.categoryFn)))(t))(i)}}}}(n["Control.Apply"]=n["Control.Apply"]||{}),function(t){"use strict";var r=n["Control.Apply"],e=(n["Data.Functor"],n["Data.Unit"],function(n){return n.pure});t.Applicative=function(n,t){this.Apply0=n,this.pure=t},t.pure=e,t.liftA1=function(n){return function(t){return function(a){return r.apply(n.Apply0())(e(n)(t))(a)}}}}(n["Control.Applicative"]=n["Control.Applicative"]||{}),function(t){"use strict";n["Control.Bind"],n["Control.Applicative"],n["Control.Apply"],n["Control.Category"];var r=n["Data.Function"],e=(n["Data.Functor"],n["Data.Unit"],function(n){return n.bind}),a=function(n){return r.flip(e(n))};t.Bind=function(n,t){this.Apply0=n,this.bind=t},t.bind=e,t.bindFlipped=a,t.composeKleisliFlipped=function(n){return function(t){return function(r){return function(e){return a(n)(t)(r(e))}}}}}(n["Control.Bind"]=n["Control.Bind"]||{}),function(t){"use strict";var r=n["Control.Applicative"],e=(n["Control.Apply"],n["Control.Bind"]);n["Data.Functor"],n["Data.Unit"];t.Monad=function(n,t){this.Applicative0=n,this.Bind1=t},t.ap=function(n){return function(t){return function(a){return e.bind(n.Bind1())(t)(function(t){return e.bind(n.Bind1())(a)(function(e){return r.pure(n.Applicative0())(t(e))})})}}}}(n["Control.Monad"]=n["Control.Monad"]||{}),function(n){"use strict";n.foldrArray=function(n){return function(t){return function(r){for(var e=t,a=r.length-1;a>=0;a--)e=n(r[a])(e);return e}}},n.foldlArray=function(n){return function(t){return function(r){for(var e=t,a=r.length,o=0;o<a;o++)e=n(e)(r[o]);return e}}}}(n["Data.Foldable"]=n["Data.Foldable"]||{}),function(n){"use strict";n.intDegree=function(n){return Math.min(Math.abs(n),2147483647)},n.intDiv=function(n){return function(t){return 0===t?0:t>0?Math.floor(n/t):-Math.floor(n/-t)}},n.intMod=function(n){return function(t){if(0===t)return 0;var r=Math.abs(t);return(n%r+r)%r}}}(n["Data.EuclideanRing"]=n["Data.EuclideanRing"]||{}),function(t){"use strict";var r=n["Data.Ring"],e=(n["Data.Semiring"],n["Data.Symbol"],n["Data.Unit"],function(n){this.Ring0=n}),a=new e(function(){return r.ringInt});t.CommutativeRing=e,t.commutativeRingInt=a}(n["Data.CommutativeRing"]=n["Data.CommutativeRing"]||{}),function(t){"use strict";var r=n["Data.EuclideanRing"],e=(n["Data.BooleanAlgebra"],n["Data.CommutativeRing"]),a=(n["Data.Eq"],n["Data.HeytingAlgebra"],n["Data.Ring"],n["Data.Semiring"],function(n,t,r,e){this.CommutativeRing0=n,this.degree=t,this.div=r,this.mod=e}),o=new a(function(){return e.commutativeRingInt},r.intDegree,r.intDiv,r.intMod);t.EuclideanRing=a,t.degree=function(n){return n.degree},t.div=function(n){return n.div},t.mod=function(n){return n.mod},t.euclideanRingInt=o}(n["Data.EuclideanRing"]=n["Data.EuclideanRing"]||{}),function(t){"use strict";n["Data.Semigroup"],n["Data.Symbol"],n["Data.Unit"],n["Data.Void"],n["Record.Unsafe"],n["Type.Data.RowList"];t.Semigroup=function(n){this.append=n},t.append=function(n){return n.append}}(n["Data.Semigroup"]=n["Data.Semigroup"]||{}),function(t){"use strict";n["Data.Boolean"],n["Data.Eq"],n["Data.EuclideanRing"],n["Data.Ord"],n["Data.Ordering"],n["Data.Semigroup"],n["Data.Symbol"],n["Data.Unit"],n["Record.Unsafe"],n["Type.Data.RowList"];t.Monoid=function(n,t){this.Semigroup0=n,this.mempty=t},t.mempty=function(n){return n.mempty}}(n["Data.Monoid"]=n["Data.Monoid"]||{}),function(t){"use strict";n["Control.Alt"],n["Control.Alternative"],n["Control.Applicative"],n["Control.Apply"],n["Control.Bind"],n["Control.Category"],n["Control.Extend"],n["Control.Monad"],n["Control.MonadZero"],n["Control.Plus"],n["Data.Bounded"],n["Data.Eq"],n["Data.Function"],n["Data.Functor"],n["Data.Functor.Invariant"],n["Data.Monoid"],n["Data.Ord"],n["Data.Ordering"],n["Data.Semigroup"],n["Data.Show"],n["Data.Unit"],n.Prelude;var r=function(){function n(){}return n.value=new n,n}(),e=function(){function n(n){this.value0=n}return n.create=function(t){return new n(t)},n}();t.Nothing=r,t.Just=e,t.maybe=function(n){return function(t){return function(a){if(a instanceof r)return n;if(a instanceof e)return t(a.value0);throw new Error("Failed pattern match at Data.Maybe (line 217, column 1 - line 217, column 51): "+[n.constructor.name,t.constructor.name,a.constructor.name])}}}}(n["Data.Maybe"]=n["Data.Maybe"]||{}),function(t){"use strict";var r=n["Data.Foldable"],e=(n["Control.Alt"],n["Control.Applicative"]),a=n["Control.Apply"],o=(n["Control.Bind"],n["Control.Category"],n["Control.Plus"],n["Control.Semigroupoid"],n["Data.Eq"],n["Data.Function"],n["Data.Functor"],n["Data.HeytingAlgebra"],n["Data.Maybe"],n["Data.Maybe.First"],n["Data.Maybe.Last"],n["Data.Monoid"]),i=(n["Data.Monoid.Additive"],n["Data.Monoid.Conj"],n["Data.Monoid.Disj"],n["Data.Monoid.Dual"],n["Data.Monoid.Endo"],n["Data.Monoid.Multiplicative"],n["Data.Newtype"],n["Data.Ord"],n["Data.Ordering"],n["Data.Semigroup"]),u=(n["Data.Semiring"],n["Data.Unit"]),c=(n.Prelude,function(n,t,r){this.foldMap=n,this.foldl=t,this.foldr=r}),f=function(n){return n.foldr},l=function(n){return function(t){return function(r){return f(n)(function(n){return function(e){return i.append(t.Semigroup0())(r(n))(e)}})(o.mempty(t))}}},s=new c(function(n){return l(s)(n)},r.foldlArray,r.foldrArray);t.Foldable=c,t.foldr=f,t.foldl=function(n){return n.foldl},t.foldMap=function(n){return n.foldMap},t.foldMapDefaultR=l,t.traverse_=function(n){return function(t){return function(r){return f(t)(function(t){return a.applySecond(n.Apply0())(r(t))})(e.pure(n)(u.unit))}}},t.foldableArray=s}(n["Data.Foldable"]=n["Data.Foldable"]||{}),function(t){"use strict";n["Control.Alt"];var r=n["Control.Applicative"],e=n["Control.Apply"],a=n["Control.Bind"],o=(n["Control.Extend"],n["Control.Monad"],n["Control.Semigroupoid"],n["Data.Bifoldable"],n["Data.Bifunctor"],n["Data.Bitraversable"],n["Data.Bounded"],n["Data.Eq"],n["Data.Foldable"],n["Data.FoldableWithIndex"],n["Data.Function"],n["Data.Functor"]),i=(n["Data.Functor.Invariant"],n["Data.FunctorWithIndex"],n["Data.Maybe"]),u=(n["Data.Monoid"],n["Data.Ord"],n["Data.Ordering"],n["Data.Semigroup"],n["Data.Show"],n["Data.Traversable"],n["Data.TraversableWithIndex"],n["Data.Unit"],n.Prelude,function(){function n(n){this.value0=n}return n.create=function(t){return new n(t)},n}()),c=function(){function n(n){this.value0=n}return n.create=function(t){return new n(t)},n}(),f=new o.Functor(function(n){return function(t){if(t instanceof u)return new u(t.value0);if(t instanceof c)return new c(n(t.value0));throw new Error("Failed pattern match at Data.Either (line 38, column 8 - line 38, column 52): "+[t.constructor.name])}}),l=function(n){return function(t){return function(r){if(r instanceof u)return n(r.value0);if(r instanceof c)return t(r.value0);throw new Error("Failed pattern match at Data.Either (line 238, column 1 - line 238, column 64): "+[n.constructor.name,t.constructor.name,r.constructor.name])}}},s=new e.Apply(function(){return f},function(n){return function(t){if(n instanceof u)return new u(n.value0);if(n instanceof c)return o.map(f)(n.value0)(t);throw new Error("Failed pattern match at Data.Either (line 82, column 1 - line 82, column 41): "+[n.constructor.name,t.constructor.name])}}),d=new a.Bind(function(){return s},l(function(n){return function(t){return new u(n)}})(function(n){return function(t){return t(n)}})),p=new r.Applicative(function(){return s},c.create);t.Left=u,t.Right=c,t.either=l,t.note=function(n){return i.maybe(new u(n))(c.create)},t.functorEither=f,t.applyEither=s,t.applicativeEither=p,t.bindEither=d}(n["Data.Either"]=n["Data.Either"]||{}),function(n){"use strict";n.pureE=function(n){return function(){return n}},n.bindE=function(n){return function(t){return function(){return t(n())()}}}}(n.Effect=n.Effect||{}),function(t){"use strict";var r=n.Effect,e=n["Control.Applicative"],a=n["Control.Apply"],o=n["Control.Bind"],i=n["Control.Monad"],u=n["Data.Functor"],c=(n["Data.Monoid"],n["Data.Semigroup"],n.Prelude,new i.Monad(function(){return s},function(){return f})),f=new o.Bind(function(){return l},r.bindE),l=new a.Apply(function(){return d},i.ap(c)),s=new e.Applicative(function(){return l},r.pureE),d=new u.Functor(e.liftA1(s));t.functorEffect=d,t.applyEffect=l,t.applicativeEffect=s,t.bindEffect=f,t.monadEffect=c}(n.Effect=n.Effect||{}),function(n){"use strict";n.new=function(n){return function(){return{value:n}}},n.read=function(n){return function(){return n.value}},n.write=function(n){return function(t){return function(){return t.value=n,{}}}}}(n["Effect.Ref"]=n["Effect.Ref"]||{}),function(t){"use strict";var r=n["Effect.Ref"];n["Data.Function"],n["Data.Functor"],n.Effect,n.Prelude;t.new=r.new,t.read=r.read,t.write=r.write}(n["Effect.Ref"]=n["Effect.Ref"]||{}),function(t){"use strict";(n["Partial.Unsafe"]=n["Partial.Unsafe"]||{}).unsafePartial=function(n){return n()}}(),function(t){"use strict";(n["Partial"]=n["Partial"]||{}).crashWith=function(){return function(n){throw new Error(n)}}}(),function(t){"use strict";var r=n.Partial;t.crashWith=r.crashWith}(n.Partial=n.Partial||{}),function(t){"use strict";var r=n["Partial.Unsafe"],e=n.Partial;t.unsafeCrashWith=function(n){return r.unsafePartial(function(t){return e.crashWith(t)(n)})}}(n["Partial.Unsafe"]=n["Partial.Unsafe"]||{}),function(t){"use strict";n["Control.Applicative"],n["Control.Bind"],n["Control.Monad"],n["Control.Semigroupoid"],n["Data.Bifunctor"],n["Data.Either"],n["Data.Functor"],n["Data.Identity"],n["Data.Maybe"],n["Data.Unit"],n.Effect,n["Effect.Ref"],n["Partial.Unsafe"],n.Prelude;var r=function(){function n(n){this.value0=n}return n.create=function(t){return new n(t)},n}(),e=function(){function n(n){this.value0=n}return n.create=function(t){return new n(t)},n}();t.Loop=r,t.Done=e,t.tailRec=function(n){return function(t){return function(t){var a,o=!1;function i(a){if(!(a instanceof r)){if(a instanceof e)return o=!0,a.value0;throw new Error("Failed pattern match at Control.Monad.Rec.Class (line 91, column 3 - line 91, column 25): "+[a.constructor.name])}t=n(a.value0)}for(;!o;)a=i(t);return a}(n(t))}}}(n["Control.Monad.Rec.Class"]=n["Control.Monad.Rec.Class"]||{}),function(n){"use strict";n.length=function(n){return n.length},n.cons=function(n){return function(t){return[n].concat(t)}},n.concat=function(n){if(n.length<=1e4)return Array.prototype.concat.apply([],n);for(var t=[],r=0,e=n.length;r<e;r++)for(var a=n[r],o=0,i=a.length;o<i;o++)t.push(a[o]);return t}}(n["Data.Array"]=n["Data.Array"]||{}),function(t){"use strict";n["Control.Applicative"],n["Control.Apply"],n["Control.Biapplicative"],n["Control.Biapply"],n["Control.Bind"],n["Control.Comonad"],n["Control.Extend"],n["Control.Lazy"],n["Control.Monad"],n["Control.Semigroupoid"],n["Data.Bifoldable"],n["Data.Bifunctor"],n["Data.Bitraversable"],n["Data.BooleanAlgebra"],n["Data.Bounded"],n["Data.CommutativeRing"],n["Data.Distributive"],n["Data.Eq"],n["Data.Foldable"],n["Data.FoldableWithIndex"],n["Data.Function"],n["Data.Functor"],n["Data.Functor.Invariant"],n["Data.FunctorWithIndex"],n["Data.HeytingAlgebra"],n["Data.Maybe"],n["Data.Maybe.First"],n["Data.Monoid"],n["Data.Newtype"],n["Data.Ord"],n["Data.Ordering"],n["Data.Ring"],n["Data.Semigroup"],n["Data.Semigroup.Foldable"],n["Data.Semigroup.Traversable"],n["Data.Semiring"],n["Data.Show"],n["Data.Traversable"],n["Data.TraversableWithIndex"],n["Data.Unit"],n.Prelude,n["Type.Equality"];var r=function(){function n(n,t){this.value0=n,this.value1=t}return n.create=function(t){return function(r){return new n(t,r)}},n}();t.Tuple=r}(n["Data.Tuple"]=n["Data.Tuple"]||{}),function(t){"use strict";(n["Unsafe.Coerce"]=n["Unsafe.Coerce"]||{}).unsafeCoerce=function(n){return n}}(),function(t){"use strict";var r=n["Unsafe.Coerce"];t.unsafeCoerce=r.unsafeCoerce}(n["Unsafe.Coerce"]=n["Unsafe.Coerce"]||{}),function(t){"use strict";var r=n["Data.Array"];n["Control.Alt"],n["Control.Alternative"],n["Control.Applicative"],n["Control.Apply"],n["Control.Bind"],n["Control.Category"],n["Control.Lazy"],n["Control.Monad.Rec.Class"],n["Control.Monad.ST"],n["Control.Monad.ST.Internal"],n["Control.Semigroupoid"],n["Data.Array.NonEmpty.Internal"],n["Data.Array.ST"],n["Data.Array.ST.Iterator"],n["Data.Boolean"],n["Data.Eq"],n["Data.Foldable"],n["Data.Function"],n["Data.Functor"],n["Data.HeytingAlgebra"],n["Data.Maybe"],n["Data.Ord"],n["Data.Ordering"],n["Data.Ring"],n["Data.Semigroup"],n["Data.Semiring"],n["Data.Traversable"],n["Data.Tuple"],n["Data.Unfoldable"],n["Partial.Unsafe"],n.Prelude,n["Unsafe.Coerce"];t.cons=r.cons}(n["Data.Array"]=n["Data.Array"]||{}),function(t){"use strict";(n["Data.Int"]=n["Data.Int"]||{}).fromStringAsImpl=function(n){return function(t){return function(r){var e;e=r<11?"[0-"+(r-1).toString()+"]":11===r?"[0-9a]":"[0-9a-"+String.fromCharCode(86+r)+"]";var a=new RegExp("^[\\+\\-]?"+e+"+$","i");return function(e){if(a.test(e)){var o=parseInt(e,r);return(0|o)===o?n(o):t}return t}}}}}(),function(t){"use strict";var r=n["Data.Int"],e=(n["Control.Category"],n["Control.Semigroupoid"],n["Data.Boolean"],n["Data.Bounded"],n["Data.CommutativeRing"],n["Data.DivisionRing"],n["Data.Eq"],n["Data.EuclideanRing"],n["Data.HeytingAlgebra"],n["Data.Int.Bits"],n["Data.Maybe"]),a=(n["Data.Ord"],n["Data.Ordering"],n["Data.Ring"],n["Data.Semiring"],n["Data.Show"],n.Global,n.Math,n.Prelude,r.fromStringAsImpl(e.Just.create)(e.Nothing.value)),o=a(10);t.fromString=o,t.fromStringAs=a}(n["Data.Int"]=n["Data.Int"]||{}),function(n){"use strict";n.trim=function(n){return n.trim()},n.joinWith=function(n){return function(t){return t.join(n)}}}(n["Data.String.Common"]=n["Data.String.Common"]||{}),function(t){"use strict";var r=n["Data.String.Common"];n["Data.Eq"],n["Data.Ordering"],n["Data.String.Pattern"],n.Prelude;t.null=function(n){return""===n},t.trim=r.trim,t.joinWith=r.joinWith}(n["Data.String.Common"]=n["Data.String.Common"]||{}),function(n){"use strict";var t=function(){var n={},t="Pure",r="Throw",e="Catch",a="Sync",o="Async",i="Bind",u="Bracket",c="Fork",f="Sequential",l="Map",s="Apply",d="Alt",p="Cons",D="Resume",m="Release",h="Finalizer",g="Finalized",C="Forked";function v(n,t,r,e){this.tag=n,this._1=t,this._2=r,this._3=e}function w(n){var t=function(t,r,e){return new v(n,t,r,e)};return t.tag=n,t}function E(n){return new v(t,void 0)}function y(n){try{n()}catch(t){setTimeout(function(){throw t},0)}}function A(n,t,r){try{return t(r())}catch(e){return n(e)}}function S(n,t,r){try{return t(r)()}catch(e){return r(n(e))(),E}}var b=function(){var n=1024,t=0,r=0,e=new Array(n),a=!1;function o(){var o;for(a=!0;0!==t;)t--,o=e[r],e[r]=void 0,r=(r+1)%n,o();a=!1}return{isDraining:function(){return a},enqueue:function(i){var u;t===n&&(u=a,o(),a=u),e[(r+t)%n]=i,t++,a||o()}}}();var _=0,F=1,M=2,R=3,P=4,B=5,U=6;function I(n,l,s){var d=0,C=_,w=s,E=null,k=null,L=null,N=null,x=null,q=0,O=0,W=null,j=!0;function z(s){for(var O,H,K;;)switch(O=null,H=null,K=null,C){case M:C=F,w=L(w),null===N?L=null:(L=N._1,N=N._2);break;case R:n.isLeft(w)?(C=B,E=w,w=null):null===L?C=B:(C=M,w=n.fromRight(w));break;case F:switch(w.tag){case i:L&&(N=new v(p,L,N)),L=w._2,C=F,w=w._1;break;case t:null===L?(C=B,w=n.right(w._1)):(C=M,w=w._1);break;case a:C=R,w=A(n.left,n.right,w._1);break;case o:return C=P,void(w=S(n.left,w._1,function(n){return function(){d===s&&(d++,b.enqueue(function(){d===s+1&&(C=R,w=n,z(d))}))}}));case r:C=B,E=n.left(w._1),w=null;break;case e:x=new v(p,w,null===L?x:new v(p,new v(D,L,N),x,k),k),L=null,N=null,C=F,w=w._1;break;case u:q++,x=new v(p,w,null===L?x:new v(p,new v(D,L,N),x,k),k),L=null,N=null,C=F,w=w._1;break;case c:C=R,O=I(n,l,w._2),l&&l.register(O),w._1&&O.run(),w=n.right(O);break;case f:C=F,w=T(n,l,w._1)}break;case B:if(L=null,N=null,null===x)C=U,w=k||E||w;else switch(O=x._3,K=x._1,x=x._2,K.tag){case e:k&&k!==O?C=B:E&&(C=F,w=K._2(n.fromLeft(E)),E=null);break;case D:k&&k!==O||E?C=B:(L=K._1,N=K._2,C=M,w=n.fromRight(w));break;case u:q--,null===E&&(H=n.fromRight(w),x=new v(p,new v(m,K._2,H),x,O),(k===O||q>0)&&(C=F,w=K._3(H)));break;case m:q++,x=new v(p,new v(g,w,E),x,k),C=F,w=k&&k!==O?K._1.killed(n.fromLeft(k))(K._2):E?K._1.failed(n.fromLeft(E))(K._2):K._1.completed(n.fromRight(w))(K._2),E=null;break;case h:q++,x=new v(p,new v(g,w,E),x,k),C=F,w=K._1;break;case g:q--,C=B,w=K._1,E=K._2}break;case U:for(var J in W)W.hasOwnProperty(J)&&(j=j&&W[J].rethrow,y(W[J].handler(w)));return W=null,void(k&&E?setTimeout(function(){throw n.fromLeft(E)},0):n.isLeft(w)&&j&&setTimeout(function(){if(j)throw n.fromLeft(w)},0));case _:C=F;break;case P:return}}function H(n){return function(){if(C===U)return j=j&&n.rethrow,n.handler(w)(),function(){};var t=O++;return(W=W||{})[t]=n,function(){null!==W&&delete W[t]}}}return{kill:function(t,r){return function(){if(C===U)return r(n.right(void 0))(),function(){};var e=H({rethrow:!1,handler:function(){return r(n.right(void 0))}})();switch(C){case _:k=n.left(t),C=U,w=k,z(d);break;case P:null===k&&(k=n.left(t)),0===q&&(C===P&&(x=new v(p,new v(h,w(t)),x,k)),C=B,w=null,E=null,z(++d));break;default:null===k&&(k=n.left(t)),0===q&&(C=B,w=null,E=null)}return e}},join:function(n){return function(){var t=H({rethrow:!1,handler:n})();return C===_&&z(d),t}},onComplete:H,isSuspended:function(){return C===_},run:function(){C===_&&(b.isDraining()?z(d):b.enqueue(function(){z(d)}))}}}function k(t,r,e,a){var i=0,u={},c=0,f={},D=new Error("[ParAff] Early exit"),m=null,h=n;function g(r,e,a){var o,i,c=e,f=null,D=null,m=0,h={};n:for(;;)switch(o=null,c.tag){case C:if(c._3===n&&(o=u[c._1],h[m++]=o.kill(r,function(n){return function(){0===--m&&a(n)()}})),null===f)break n;c=f._2,null===D?f=null:(f=D._1,D=D._2);break;case l:c=c._2;break;case s:case d:f&&(D=new v(p,f,D)),f=c,c=c._1}if(0===m)a(t.right(void 0))();else for(i=0,o=m;i<o;i++)h[i]=h[i]();return h}function w(r){return function(e){return function(){delete u[r._1],r._3=e,function r(e,o,i){var u,p,h,C,v,w;for(t.isLeft(e)?(u=e,p=null):(p=e,u=null);;){if(h=null,C=null,v=null,w=null,null!==m)return;if(null===o)return void a(u||p)();if(o._3!==n)return;switch(o.tag){case l:null===u?(o._3=t.right(o._1(t.fromRight(p))),p=o._3):o._3=u;break;case s:if(h=o._1._3,C=o._2._3,u){if(o._3=u,v=!0,w=c++,f[w]=g(D,u===h?o._2:o._1,function(){return function(){delete f[w],v?v=!1:null===i?r(u,null,null):r(u,i._1,i._2)}}),v)return void(v=!1)}else{if(h===n||C===n)return;p=t.right(t.fromRight(h)(t.fromRight(C))),o._3=p}break;case d:if(h=o._1._3,C=o._2._3,h===n&&t.isLeft(C)||C===n&&t.isLeft(h))return;if(h!==n&&t.isLeft(h)&&C!==n&&t.isLeft(C))u=p===h?C:h,p=null,o._3=u;else if(o._3=p,v=!0,w=c++,f[w]=g(D,p===h?o._2:o._1,function(){return function(){delete f[w],v?v=!1:null===i?r(p,null,null):r(p,i._1,i._2)}}),v)return void(v=!1)}null===i?o=null:(o=i._1,i=i._2)}}(e,r._2._1,r._2._2)}}}return function(){var a,o,c=F,f=e,D=null,m=null;n:for(;;)switch(a=null,o=null,c){case F:switch(f.tag){case l:D&&(m=new v(p,D,m)),D=new v(l,f._1,n,n),f=f._2;break;case s:D&&(m=new v(p,D,m)),D=new v(s,n,f._2,n),f=f._1;break;case d:D&&(m=new v(p,D,m)),D=new v(d,n,f._2,n),f=f._1;break;default:o=i++,c=B,a=f,f=new v(C,o,new v(p,D,m),n),(a=I(t,r,a)).onComplete({rethrow:!1,handler:w(f)})(),u[o]=a,r&&r.register(a)}break;case B:if(null===D)break n;D._1===n?(D._1=f,c=F,f=D._2,D._2=n):(D._2=f,f=D,null===m?D=null:(D=m._1,m=m._2))}for(h=f,o=0;o<i;o++)u[o].run()}(),function(n){return new v(o,function(r){return function(){return function(n,r){var e;for(var a in m=t.left(n),f)if(f.hasOwnProperty(a))for(a in e=f[a])e.hasOwnProperty(a)&&e[a]();f=null;var i=g(n,h,r);return function(n){return new v(o,function(n){return function(){for(var n in i)i.hasOwnProperty(n)&&i[n]();return E}})}}(n,r)}})}}function T(n,t,r){return new v(o,function(e){return function(){return k(n,t,r,e)}})}return v.EMPTY=n,v.Pure=w(t),v.Throw=w(r),v.Catch=w(e),v.Sync=w(a),v.Async=w(o),v.Bind=w(i),v.Bracket=w(u),v.Fork=w(c),v.Seq=w(f),v.ParMap=w(l),v.ParApply=w(s),v.ParAlt=w(d),v.Fiber=I,v.Supervisor=function(n){var t={},r=0,e=0;return{register:function(n){var a=r++;n.onComplete({rethrow:!0,handler:function(n){return function(){e--,delete t[a]}}}),t[a]=n,e++},isEmpty:function(){return 0===e},killAll:function(o,i){return function(){var u=0,c={};function f(r){c[r]=t[r].kill(o,function(t){return function(){delete c[r],u--,n.isLeft(t)&&n.fromLeft(t)&&setTimeout(function(){throw n.fromLeft(t)},0),0===u&&i()}})()}for(var l in t)t.hasOwnProperty(l)&&(u++,f(l));return t={},r=0,e=0,function(n){return new v(a,function(){for(var n in c)c.hasOwnProperty(n)&&c[n]()})}}}}},v.Scheduler=b,v.nonCanceler=E,v}();n._pure=t.Pure,n._map=function(n){return function(r){return r.tag===t.Pure.tag?t.Pure(n(r._1)):t.Bind(r,function(r){return t.Pure(n(r))})}},n._bind=function(n){return function(r){return t.Bind(n,r)}},n._liftEffect=t.Sync,n._parAffMap=function(n){return function(r){return t.ParMap(n,r)}},n._parAffApply=function(n){return function(r){return t.ParApply(n,r)}},n.makeAff=t.Async,n._makeFiber=function(n,r){return function(){return t.Fiber(n,null,r)}},n._sequential=t.Seq}(n["Effect.Aff"]=n["Effect.Aff"]||{}),function(t){"use strict";n["Control.Category"],n["Control.Monad"],n.Effect;t.liftEffect=function(n){return n.liftEffect},t.MonadEffect=function(n,t){this.Monad0=n,this.liftEffect=t}}(n["Effect.Class"]=n["Effect.Class"]||{}),function(t){"use strict";n["Control.Alt"],n["Control.Alternative"],n["Control.Applicative"],n["Control.Apply"],n["Control.Bind"],n["Control.Monad.Cont.Trans"],n["Control.Monad.Except.Trans"],n["Control.Monad.Maybe.Trans"],n["Control.Monad.Reader.Trans"],n["Control.Monad.Writer.Trans"],n["Control.Plus"],n["Control.Semigroupoid"],n["Data.Either"],n["Data.Function"],n["Data.Functor"],n["Data.Functor.Compose"],n["Data.Maybe"],n["Data.Newtype"],n["Data.Unit"],n["Effect.Class"],n["Effect.Ref"],n.Prelude;t.parallel=function(n){return n.parallel},t.sequential=function(n){return n.sequential},t.Parallel=function(n,t,r,e){this.Applicative1=n,this.Monad0=t,this.parallel=r,this.sequential=e}}(n["Control.Parallel.Class"]=n["Control.Parallel.Class"]||{}),function(t){"use strict";n["Control.Alternative"],n["Control.Apply"];var r=n["Control.Category"],e=n["Control.Parallel.Class"],a=(n["Control.Semigroupoid"],n["Data.Foldable"]),o=(n["Data.Traversable"],n.Prelude,function(n){return function(t){return function(r){return function(o){return e.sequential(n)(a.traverse_(n.Applicative1())(t)(function(t){return e.parallel(n)(r(t))})(o))}}}});t.parTraverse_=o,t.parSequence_=function(n){return function(t){return o(n)(t)(r.identity(r.categoryFn))}}}(n["Control.Parallel"]=n["Control.Parallel"]||{}),function(n){"use strict";n.error=function(n){return new Error(n)},n.throwException=function(n){return function(){throw n}}}(n["Effect.Exception"]=n["Effect.Exception"]||{}),function(t){"use strict";var r=n["Effect.Exception"];n["Control.Applicative"],n["Control.Semigroupoid"],n["Data.Either"],n["Data.Functor"],n["Data.Maybe"],n["Data.Show"],n.Effect,n.Prelude;t.throw=function(n){return r.throwException(r.error(n))}}(n["Effect.Exception"]=n["Effect.Exception"]||{}),function(t){"use strict";var r=n["Effect.Aff"],e=(n["Control.Alt"],n["Control.Alternative"],n["Control.Applicative"]),a=n["Control.Apply"],o=n["Control.Bind"],i=(n["Control.Lazy"],n["Control.Monad"]),u=(n["Control.Monad.Error.Class"],n["Control.Monad.Rec.Class"],n["Control.Parallel"]),c=n["Control.Parallel.Class"],f=(n["Control.Plus"],n["Control.Semigroupoid"],n["Data.Either"]),l=n["Data.Foldable"],s=n["Data.Function"],d=(n["Data.Function.Uncurried"],n["Data.Functor"]),p=n["Data.Monoid"],D=(n["Data.Newtype"],n["Data.Semigroup"]),m=(n["Data.Time.Duration"],n["Data.Unit"]),h=n.Effect,g=n["Effect.Class"],C=(n["Effect.Exception"],n["Effect.Unsafe"],n["Partial.Unsafe"]),v=(n.Prelude,n["Unsafe.Coerce"]),w=new d.Functor(r._parAffMap),E=new d.Functor(r._map),y={isLeft:function(n){if(n instanceof f.Left)return!0;if(n instanceof f.Right)return!1;throw new Error("Failed pattern match at Effect.Aff (line 390, column 12 - line 392, column 20): "+[n.constructor.name])},fromLeft:function(n){if(n instanceof f.Left)return n.value0;if(n instanceof f.Right)return C.unsafeCrashWith("unsafeFromLeft: Right");throw new Error("Failed pattern match at Effect.Aff (line 395, column 20 - line 399, column 3): "+[n.constructor.name])},fromRight:function(n){if(n instanceof f.Right)return n.value0;if(n instanceof f.Left)return C.unsafeCrashWith("unsafeFromRight: Left");throw new Error("Failed pattern match at Effect.Aff (line 400, column 21 - line 402, column 31): "+[n.constructor.name])},left:f.Left.create,right:f.Right.create},A=function(n){return function(){var t=function(n){return r._makeFiber(y,n)}(n)();return t.run(),t}},S=new a.Apply(function(){return w},r._parAffApply),b=new i.Monad(function(){return M},function(){return _}),_=new o.Bind(function(){return F},r._bind),F=new a.Apply(function(){return E},i.ap(b)),M=new e.Applicative(function(){return F},r._pure),R=new g.MonadEffect(function(){return b},r._liftEffect),P=new c.Parallel(function(){return B},function(){return b},v.unsafeCoerce,r._sequential),B=new e.Applicative(function(){return S},function(n){return c.parallel(P)(e.pure(M)(n))}),U=new D.Semigroup(function(n){return function(t){return function(r){return u.parSequence_(P)(l.foldableArray)([n(r),t(r)])}}}),I=s.const(e.pure(M)(m.unit)),k=new p.Monoid(function(){return U},I);t.launchAff=A,t.launchAff_=function(n){return d.void(h.functorEffect)(A(n))},t.nonCanceler=I,t.functorAff=E,t.applyAff=F,t.applicativeAff=M,t.bindAff=_,t.monadAff=b,t.monadEffectAff=R,t.functorParAff=w,t.applyParAff=S,t.applicativeParAff=B,t.parallelAff=P,t.semigroupCanceler=U,t.monoidCanceler=k,t.makeAff=r.makeAff}(n["Effect.Aff"]=n["Effect.Aff"]||{}),function(t){"use strict";n["Node.Encoding"];var r=n["Data.Show"],e=(n.Prelude,function(){function n(){}return n.value=new n,n}()),a=function(){function n(){}return n.value=new n,n}(),o=function(){function n(){}return n.value=new n,n}(),i=function(){function n(){}return n.value=new n,n}(),u=function(){function n(){}return n.value=new n,n}(),c=function(){function n(){}return n.value=new n,n}(),f=function(){function n(){}return n.value=new n,n}(),l=function(){function n(){}return n.value=new n,n}(),s=new r.Show(function(n){if(n instanceof e)return"ASCII";if(n instanceof a)return"UTF8";if(n instanceof o)return"UTF16LE";if(n instanceof i)return"UCS2";if(n instanceof u)return"Base64";if(n instanceof c)return"Latin1";if(n instanceof f)return"Binary";if(n instanceof l)return"Hex";throw new Error("Failed pattern match at Node.Encoding (line 19, column 1 - line 19, column 39): "+[n.constructor.name])});t.ASCII=e,t.UTF8=a,t.UTF16LE=o,t.UCS2=i,t.Base64=u,t.Latin1=c,t.Binary=f,t.Hex=l,t.encodingToNode=function(n){if(n instanceof e)return"ascii";if(n instanceof a)return"utf8";if(n instanceof o)return"utf16le";if(n instanceof i)return"ucs2";if(n instanceof u)return"base64";if(n instanceof c)return"latin1";if(n instanceof f)return"binary";if(n instanceof l)return"hex";throw new Error("Failed pattern match at Node.Encoding (line 31, column 1 - line 31, column 37): "+[n.constructor.name])},t.showEncoding=s}(n["Node.Encoding"]=n["Node.Encoding"]||{}),function(t){"use strict";(n["Node.Process"]=n["Node.Process"]||{}).process=process}(),function(n){"use strict";n.readChunkImpl=function(n){return function(t){return function(r){if(r instanceof Buffer)return t(r);if("string"==typeof r)return n(r);throw new Error("Node.Stream.readChunkImpl: Unrecognised chunk type; expected String or Buffer, got: "+r)}}},n.onDataEitherImpl=function(n){return function(t){return function(r){return function(){t.on("data",function(t){r(n(t))()})}}}},n.onEnd=function(n){return function(t){return function(){n.on("end",t)}}},n.write=function(n){return function(t){return function(r){return function(){return n.write(t,null,r)}}}},n.writeStringImpl=function(n){return function(t){return function(r){return function(e){return function(){return n.write(r,t,e)}}}}}}(n["Node.Stream"]=n["Node.Stream"]||{}),function(t){"use strict";(n["Node.Buffer"]=n["Node.Buffer"]||{}).toStringImpl=function(n){return function(t){return function(){return t.toString(n)}}}}(),function(t){"use strict";var r=n["Node.Buffer"],e=(n["Control.Semigroupoid"],n["Data.ArrayBuffer.Types"],n["Data.Maybe"],n["Data.Show"],n.Effect,n["Node.Encoding"]);n.Prelude;t.toString=function(n){return r.toStringImpl(e.encodingToNode(n))}}(n["Node.Buffer"]=n["Node.Buffer"]||{}),function(t){"use strict";var r=n["Node.Stream"],e=n["Control.Applicative"],a=n["Control.Bind"],o=n["Data.Either"],i=(n["Data.Functor"],n["Data.Maybe"],n["Data.Show"]),u=n.Effect,c=n["Effect.Exception"],f=n["Node.Buffer"],l=n["Node.Encoding"],s=(n.Prelude,r.readChunkImpl(o.Left.create)(o.Right.create)),d=function(n){return function(t){return r.onDataEitherImpl(s)(n)(t)}},p=function(n){return function(t){return d(n)(a.composeKleisliFlipped(u.bindEffect)(t)(function(n){if(n instanceof o.Left)return c.throw("Stream encoding should not be set");if(n instanceof o.Right)return e.pure(u.applicativeEffect)(n.value0);throw new Error("Failed pattern match at Node.Stream (line 94, column 5 - line 98, column 17): "+[n.constructor.name])}))}};t.onData=p,t.onDataString=function(n){return function(t){return function(r){return p(n)(a.composeKleisliFlipped(u.bindEffect)(r)(f.toString(t)))}}},t.onDataEither=d,t.writeString=function(n){return function(t){return r.writeStringImpl(n)(i.show(l.showEncoding)(t))}},t.onEnd=r.onEnd}(n["Node.Stream"]=n["Node.Stream"]||{}),function(t){"use strict";var r=n["Node.Process"],e=(n["Data.Functor"],n["Data.Maybe"],n["Data.Posix"],n["Data.Posix.Signal"],n.Effect,n["Foreign.Object"],n["Node.Platform"],n["Node.Stream"],n.Prelude,n["Unsafe.Coerce"],r.process.stdout),a=r.process.stdin;t.stdin=a,t.stdout=e}(n["Node.Process"]=n["Node.Process"]||{}),function(t){"use strict";var r=n["Control.Applicative"],e=n["Control.Bind"],a=n["Control.Category"],o=n["Control.Monad.Rec.Class"],i=n["Data.Array"],u=n["Data.Boolean"],c=n["Data.Either"],f=(n["Data.Eq"],n["Data.EuclideanRing"]),l=n["Data.Functor"],s=n["Data.Int"],d=n["Data.Monoid"],p=(n["Data.Ring"],n["Data.Semigroup"],n["Data.Show"]),D=(n["Data.String"],n["Data.String.Common"]),m=n["Data.Tuple"],h=n["Data.Unit"],g=n.Effect,C=n["Effect.Aff"],v=n["Effect.Class"],w=n["Effect.Ref"],E=n["Node.Encoding"],y=n["Node.Process"],A=n["Node.Stream"],S=n["Partial.Unsafe"],b=(n.Prelude,function(n){return c.either(function(n){return S.unsafeCrashWith(n)})(a.identity(a.categoryFn))(e.bind(c.bindEither)(c.note("n")(s.fromString(D.trim(n))))(function(n){return r.pure(c.applicativeEither)((t=n,e=o.tailRec(function(n){if(0===n.value0)return new o.Done(D.joinWith("")(n.value1));if(u.otherwise){var t=f.mod(f.euclideanRingInt)(n.value0)(2),r=f.div(f.euclideanRingInt)(n.value0-t|0)(-2);return new o.Loop(new m.Tuple(r,i.cons(p.show(p.showInt)(t))(n.value1)))}throw new Error("Failed pattern match at ABC105C (line 58, column 5 - line 64, column 66): "+[n.constructor.name])})(new m.Tuple(t,[])),(D.null(e)?"0":e)+"\n"));var t,e}))}),_=C.makeAff(function(n){return function(){var t=w.new("")();return A.onDataString(y.stdin)(E.UTF8.value)(function(n){return function(){var r=w.read(t)();return w.write(r+n)(t)()}})(),A.onEnd(y.stdin)(function(){var e=w.read(t)();return n(r.pure(c.applicativeEither)(e))()})(),d.mempty(C.monoidCanceler)}}),F=C.launchAff_(e.bind(C.bindAff)(_)(function(n){return e.bind(C.bindAff)(r.pure(C.applicativeAff)(b(n)))(function(n){return v.liftEffect(C.monadEffectAff)((t=n,l.void(g.functorEffect)(A.writeString(y.stdout)(E.UTF8.value)(t)(r.pure(g.applicativeEffect)(h.unit)))));var t})}));t.main=F,t.solve=b}(n.ABC105C=n.ABC105C||{}),n.ABC105C.main();
},{}]},{},["Focm"], null)