Problem:
Score : 300 points

Problem Statement

We have N switches with "on" and "off" state, and M bulbs. The switches are numbered 1 to N, and the bulbs are numbered 1 to M.

Bulb i is connected to k_i switches: Switch s_{i1}, s_{i2}, ..., and s_{ik_i}. It is lighted when the number of switches that are "on" among these switches is congruent to p_i modulo 2.

How many combinations of "on" and "off" states of the switches light all the bulbs?

Constraints

1 \leq N, M \leq 10

1 \leq k_i \leq N

1 \leq s_{ij} \leq N

s_{ia} \neq s_{ib} (a \neq b)

p_i is 0 or 1.

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N M
k_1 s_{11} s_{12} ... s_{1k_1}
:
k_M s_{M1} s_{M2} ... s_{Mk_M}
p_1 p_2 ... p_M

Output

Print the number of combinations of "on" and "off" states of the switches that light all the bulbs.

Sample Input 1

2 2
2 1 2
1 2
0 1

Sample Output 1

1

Bulb 1 is lighted when there is an even number of switches that are "on" among the following: Switch 1 and 2.

Bulb 2 is lighted when there is an odd number of switches that are "on" among the following: Switch 2.

There are four possible combinations of states of (Switch 1, Switch 2): (on, on), (on, off), (off, on) and (off, off). Among them, only (on, on) lights all the bulbs, so we should print 1.

Sample Input 2

2 3
2 1 2
1 1
1 2
0 0 1

Sample Output 2

0

Bulb 1 is lighted when there is an even number of switches that are "on" among the following: Switch 1 and 2.

Bulb 2 is lighted when there is an even number of switches that are "on" among the following: Switch 1.

Bulb 3 is lighted when there is an odd number of switches that are "on" among the following: Switch 2.

Switch 1 has to be "off" to light Bulb 2 and Switch 2 has to be "on" to light Bulb 3, but then Bulb 1 will not be lighted. Thus, there are no combinations of states of the switches that light all the bulbs, so we should print 0.

Sample Input 3

5 2
3 1 2 5
2 2 3
1 0

Sample Output 3

8

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(t){"use strict";(n["Control.Apply"]=n["Control.Apply"]||{}).arrayApply=function(n){return function(t){for(var r=n.length,e=t.length,i=new Array(r*e),u=0,o=0;o<r;o++)for(var a=n[o],c=0;c<e;c++)i[u++]=a(t[c]);return i}}}(),function(n){"use strict";n["Control.Semigroupoid"]=n["Control.Semigroupoid"]||{};var t=n["Control.Semigroupoid"],r=function(n){this.compose=n},e=new r(function(n){return function(t){return function(r){return n(t(r))}}});t.compose=function(n){return n.compose},t.Semigroupoid=r,t.semigroupoidFn=e}(n),function(n){"use strict";n["Control.Category"]=n["Control.Category"]||{};var t=n["Control.Category"],r=n["Control.Semigroupoid"],e=function(n,t){this.Semigroupoid0=n,this.identity=t},i=new e(function(){return r.semigroupoidFn},function(n){return n});t.Category=e,t.identity=function(n){return n.identity},t.categoryFn=i}(n),function(n){"use strict";n["Data.Function"]=n["Data.Function"]||{};var t=n["Data.Function"];t.flip=function(n){return function(t){return function(r){return n(r)(t)}}},t.const=function(n){return function(t){return n}}}(n),function(t){"use strict";(n["Data.Functor"]=n["Data.Functor"]||{}).arrayMap=function(n){return function(t){for(var r=t.length,e=new Array(r),i=0;i<r;i++)e[i]=n(t[i]);return e}}}(),function(t){"use strict";(n["Data.Unit"]=n["Data.Unit"]||{}).unit={}}(),function(n){"use strict";n["Data.Unit"]=n["Data.Unit"]||{};var t=n["Data.Unit"],r=n["Data.Unit"];t.unit=r.unit}(n),function(n){"use strict";n["Data.Functor"]=n["Data.Functor"]||{};var t=n["Data.Functor"],r=n["Data.Functor"],e=n["Control.Semigroupoid"],i=n["Data.Function"],u=n["Data.Unit"],o=function(n){this.map=n},a=function(n){return n.map},c=new o(e.compose(e.semigroupoidFn)),f=new o(r.arrayMap);t.Functor=o,t.map=a,t.void=function(n){return a(n)(i.const(u.unit))},t.functorFn=c,t.functorArray=f}(n),function(n){"use strict";n["Control.Apply"]=n["Control.Apply"]||{};var t=n["Control.Apply"],r=n["Control.Apply"],e=n["Control.Category"],i=n["Data.Function"],u=n["Data.Functor"],o=function(n,t){this.Functor0=n,this.apply=t},a=new o(function(){return u.functorArray},r.arrayApply),c=function(n){return n.apply};t.Apply=o,t.apply=c,t.applySecond=function(n){return function(t){return function(r){return c(n)(u.map(n.Functor0())(i.const(e.identity(e.categoryFn)))(t))(r)}}},t.applyArray=a}(n),function(n){"use strict";n["Control.Applicative"]=n["Control.Applicative"]||{};var t=n["Control.Applicative"],r=n["Control.Apply"],e=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(i){return r.apply(n.Apply0())(e(n)(t))(i)}}}}(n),function(t){"use strict";(n["Control.Bind"]=n["Control.Bind"]||{}).arrayBind=function(n){return function(t){for(var r=[],e=0,i=n.length;e<i;e++)Array.prototype.push.apply(r,t(n[e]));return r}}}(),function(n){"use strict";n["Control.Bind"]=n["Control.Bind"]||{};var t=n["Control.Bind"],r=n["Control.Bind"],e=n["Control.Apply"],i=n["Data.Function"],u=function(n,t){this.Apply0=n,this.bind=t},o=new u(function(){return e.applyArray},r.arrayBind),a=function(n){return n.bind},c=function(n){return i.flip(a(n))};t.Bind=u,t.bind=a,t.bindFlipped=c,t.composeKleisliFlipped=function(n){return function(t){return function(r){return function(e){return c(n)(t)(r(e))}}}},t.bindArray=o}(n),function(n){"use strict";n.range=function(n){return function(t){for(var r=n>t?-1:1,e=new Array(r*(t-n)+1),i=n,u=0;i!==t;)e[u++]=i,i+=r;return e[u]=i,e}},n.length=function(n){return n.length},n.snoc=function(n){return function(t){var r=n.slice();return r.push(t),r}},n["uncons'"]=function(n){return function(t){return function(r){return 0===r.length?n({}):t(r[0])(r.slice(1))}}},n.indexImpl=function(n){return function(t){return function(r){return function(e){return e<0||e>=r.length?t:n(r[e])}}}},n.filter=function(n){return function(t){return t.filter(n)}},n.slice=function(n){return function(t){return function(r){return r.slice(n,t)}}},n.take=function(n){return function(t){return n<1?[]:t.slice(0,n)}},n.drop=function(n){return function(t){return n<1?t:t.slice(n)}},n.zipWith=function(n){return function(t){return function(r){for(var e=t.length<r.length?t.length:r.length,i=new Array(e),u=0;u<e;u++)i[u]=n(t[u])(r[u]);return i}}}}(n["Data.Array"]=n["Data.Array"]||{}),function(n){"use strict";n["Data.Maybe"]=n["Data.Maybe"]||{};var t=n["Data.Maybe"],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(i){if(i instanceof r)return n;if(i instanceof e)return t(i.value0);throw new Error("Failed pattern match at Data.Maybe (line 217, column 1 - line 217, column 51): "+[n.constructor.name,t.constructor.name,i.constructor.name])}}},t.fromJust=function(n){return function(n){if(n instanceof e)return n.value0;throw new Error("Failed pattern match at Data.Maybe (line 268, column 1 - line 268, column 46): "+[n.constructor.name])}}}(n),function(n){"use strict";n["Data.Array"]=n["Data.Array"]||{};var t=n["Data.Array"],r=n["Data.Array"],e=n["Control.Bind"],i=n["Data.Function"],u=n["Data.Maybe"],o=r["uncons'"](i.const(u.Nothing.value))(function(n){return function(t){return new u.Just({head:n,tail:t})}}),a=function(n){return[n]},c=r.indexImpl(u.Just.create)(u.Nothing.value),f=i.flip(e.bind(e.bindArray));t.singleton=a,t.head=function(n){return c(n)(0)},t.last=function(n){return c(n)(r.length(n)-1|0)},t.uncons=o,t.index=c,t.concatMap=f,t.mapMaybe=function(n){return f(function(t){return u.maybe([])(a)(n(t))})},t.mapWithIndex=function(n){return function(t){return r.zipWith(n)(r.range(0)(r.length(t)-1|0))(t)}},t.dropEnd=function(n){return function(t){return r.take(r.length(t)-n|0)(t)}},t.length=r.length,t.snoc=r.snoc,t.filter=r.filter,t.drop=r.drop}(n),function(n){"use strict";n["Data.Boolean"]=n["Data.Boolean"]||{};n["Data.Boolean"].otherwise=!0}(n),function(n){"use strict";n["Data.Either"]=n["Data.Either"]||{};var t=n["Data.Either"],r=n["Control.Applicative"],e=n["Control.Apply"],i=n["Control.Bind"],u=n["Data.Functor"],o=n["Data.Maybe"],a=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 u.Functor(function(n){return function(t){if(t instanceof a)return new a(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 a)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 a)return new a(n.value0);if(n instanceof c)return u.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])}}),p=new i.Bind(function(){return s},l(function(n){return function(t){return new a(n)}})(function(n){return function(t){return t(n)}})),d=new r.Applicative(function(){return s},c.create);t.Left=a,t.Right=c,t.either=l,t.note=function(n){return o.maybe(new a(n))(c.create)},t.functorEither=f,t.applyEither=s,t.applicativeEither=d,t.bindEither=p}(n),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";(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(n){"use strict";n["Data.Semiring"]=n["Data.Semiring"]||{};var t=n["Data.Semiring"],r=n["Data.Semiring"],e=function(n,t,r,e){this.add=n,this.mul=t,this.one=r,this.zero=e},i=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=i}(n),function(n){"use strict";n["Data.Ring"]=n["Data.Ring"]||{};var t=n["Data.Ring"],r=n["Data.Ring"],e=n["Data.Semiring"],i=function(n,t){this.Semiring0=n,this.sub=t},u=new i(function(){return e.semiringInt},r.intSub);t.Ring=i,t.sub=function(n){return n.sub},t.ringInt=u}(n),function(n){"use strict";n["Data.CommutativeRing"]=n["Data.CommutativeRing"]||{};var t=n["Data.CommutativeRing"],r=n["Data.Ring"],e=function(n){this.Ring0=n},i=new e(function(){return r.ringInt});t.CommutativeRing=e,t.commutativeRingInt=i}(n),function(n){"use strict";n["Data.EuclideanRing"]=n["Data.EuclideanRing"]||{};var t=n["Data.EuclideanRing"],r=n["Data.EuclideanRing"],e=n["Data.CommutativeRing"],i=function(n,t,r,e){this.CommutativeRing0=n,this.degree=t,this.div=r,this.mod=e},u=new i(function(){return e.commutativeRingInt},r.intDegree,r.intDiv,r.intMod);t.EuclideanRing=i,t.degree=function(n){return n.degree},t.div=function(n){return n.div},t.mod=function(n){return n.mod},t.euclideanRingInt=u}(n),function(n){"use strict";n.foldrArray=function(n){return function(t){return function(r){for(var e=t,i=r.length-1;i>=0;i--)e=n(r[i])(e);return e}}},n.foldlArray=function(n){return function(t){return function(r){for(var e=t,i=r.length,u=0;u<i;u++)e=n(e)(r[u]);return e}}}}(n["Data.Foldable"]=n["Data.Foldable"]||{}),function(n){"use strict";n["Data.Monoid"]=n["Data.Monoid"]||{};var t=n["Data.Monoid"];t.Monoid=function(n,t){this.Semigroup0=n,this.mempty=t},t.mempty=function(n){return n.mempty}}(n),function(n){"use strict";n.boolConj=function(n){return function(t){return n&&t}},n.boolDisj=function(n){return function(t){return n||t}},n.boolNot=function(n){return!n}}(n["Data.HeytingAlgebra"]=n["Data.HeytingAlgebra"]||{}),function(n){"use strict";n["Data.HeytingAlgebra"]=n["Data.HeytingAlgebra"]||{};var t=n["Data.HeytingAlgebra"],r=n["Data.HeytingAlgebra"],e=function(n,t,r,e,i,u){this.conj=n,this.disj=t,this.ff=r,this.implies=e,this.not=i,this.tt=u},i=function(n){return n.not},u=function(n){return n.disj},o=new e(r.boolConj,r.boolDisj,!1,function(n){return function(t){return u(o)(i(o)(n))(t)}},r.boolNot,!0);t.HeytingAlgebra=e,t.tt=function(n){return n.tt},t.ff=function(n){return n.ff},t.implies=function(n){return n.implies},t.conj=function(n){return n.conj},t.disj=u,t.not=i,t.heytingAlgebraBoolean=o}(n),function(t){"use strict";(n["Data.Semigroup"]=n["Data.Semigroup"]||{}).concatArray=function(n){return function(t){return 0===n.length?t:0===t.length?n:n.concat(t)}}}(),function(n){"use strict";n["Data.Semigroup"]=n["Data.Semigroup"]||{};var t=n["Data.Semigroup"],r=function(n){this.append=n},e=new r(n["Data.Semigroup"].concatArray);t.Semigroup=r,t.append=function(n){return n.append},t.semigroupArray=e}(n),function(n){"use strict";n["Data.Monoid.Conj"]=n["Data.Monoid.Conj"]||{};var t=n["Data.Monoid.Conj"],r=n["Data.HeytingAlgebra"],e=n["Data.Monoid"],i=n["Data.Semigroup"],u=function(n){return new i.Semigroup(function(t){return function(e){return r.conj(n)(t)(e)}})};t.Conj=function(n){return n},t.semigroupConj=u,t.monoidConj=function(n){return new e.Monoid(function(){return u(n)},r.tt(n))}}(n),function(n){"use strict";n["Data.Newtype"]=n["Data.Newtype"]||{};var t=n["Data.Newtype"],r=n["Data.Functor"],e=n["Data.Monoid.Conj"],i=function(n,t){this.unwrap=n,this.wrap=t},u=function(n){return n.wrap},o=function(n){return n.unwrap},a=new i(function(n){return n},e.Conj);t.unwrap=o,t.wrap=u,t.Newtype=i,t.alaF=function(n){return function(t){return function(e){return function(i){return function(a){return function(a){return function(c){return r.map(t)(o(i))(a(r.map(n)(u(e))(c)))}}}}}}},t.newtypeConj=a}(n),function(n){"use strict";n["Data.Foldable"]=n["Data.Foldable"]||{};var t=n["Data.Foldable"],r=n["Data.Foldable"],e=n["Control.Applicative"],i=n["Control.Apply"],u=n["Data.Functor"],o=n["Data.Monoid"],a=n["Data.Monoid.Conj"],c=n["Data.Newtype"],f=n["Data.Semigroup"],l=n["Data.Unit"],s=function(n,t,r){this.foldMap=n,this.foldl=t,this.foldr=r},p=function(n){return n.foldr},d=function(n){return function(t){return function(r){return p(n)(function(n){return function(e){return f.append(t.Semigroup0())(r(n))(e)}})(o.mempty(t))}}},h=new s(function(n){return d(h)(n)},r.foldlArray,r.foldrArray),m=function(n){return n.foldMap};t.Foldable=s,t.foldr=p,t.foldl=function(n){return n.foldl},t.foldMap=m,t.foldMapDefaultR=d,t.traverse_=function(n){return function(t){return function(r){return p(t)(function(t){return i.applySecond(n.Apply0())(r(t))})(e.pure(n)(l.unit))}}},t.all=function(n){return function(t){return c.alaF(u.functorFn)(u.functorFn)(c.newtypeConj)(c.newtypeConj)(a.Conj)(m(n)(a.monoidConj(t)))}},t.foldableArray=h}(n),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 i=new RegExp("^[\\+\\-]?"+e+"+$","i");return function(e){if(i.test(e)){var u=parseInt(e,r);return(0|u)===u?n(u):t}return t}}}}}(),function(n){"use strict";n["Data.Int"]=n["Data.Int"]||{};var t=n["Data.Int"],r=n["Data.Int"],e=n["Data.Maybe"],i=r.fromStringAsImpl(e.Just.create)(e.Nothing.value),u=i(10);t.fromString=u,t.fromStringAs=i}(n),function(t){"use strict";(n["Data.Show"]=n["Data.Show"]||{}).showIntImpl=function(n){return n.toString()}}(),function(n){"use strict";n["Data.Show"]=n["Data.Show"]||{};var t=n["Data.Show"],r=function(n){this.show=n},e=new r(n["Data.Show"].showIntImpl);t.Show=r,t.show=function(n){return n.show},t.showInt=e}(n),function(n){"use strict";n.split=function(n){return function(t){return t.split(n)}},n.trim=function(n){return n.trim()}}(n["Data.String.Common"]=n["Data.String.Common"]||{}),function(n){"use strict";n["Data.String.Common"]=n["Data.String.Common"]||{};var t=n["Data.String.Common"],r=n["Data.String.Common"];t.split=r.split,t.trim=r.trim}(n),function(n){"use strict";n["Data.Tuple"]=n["Data.Tuple"]||{};var t=n["Data.Tuple"],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),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(n){"use strict";n["Control.Monad"]=n["Control.Monad"]||{};var t=n["Control.Monad"],r=n["Control.Applicative"],e=n["Control.Bind"];t.Monad=function(n,t){this.Applicative0=n,this.Bind1=t},t.ap=function(n){return function(t){return function(i){return e.bind(n.Bind1())(t)(function(t){return e.bind(n.Bind1())(i)(function(e){return r.pure(n.Applicative0())(t(e))})})}}}}(n),function(n){"use strict";n.Effect=n.Effect||{};var t=n.Effect,r=n.Effect,e=n["Control.Applicative"],i=n["Control.Apply"],u=n["Control.Bind"],o=n["Control.Monad"],a=n["Data.Functor"],c=new o.Monad(function(){return s},function(){return f}),f=new u.Bind(function(){return l},r.bindE),l=new i.Apply(function(){return p},o.ap(c)),s=new e.Applicative(function(){return l},r.pureE),p=new a.Functor(e.liftA1(s));t.functorEffect=p,t.applyEffect=l,t.applicativeEffect=s,t.bindEffect=f,t.monadEffect=c}(n),function(n){"use strict";var t=function(){var n={},t="Pure",r="Throw",e="Catch",i="Sync",u="Async",o="Bind",a="Bracket",c="Fork",f="Sequential",l="Map",s="Apply",p="Alt",d="Cons",h="Resume",m="Release",g="Finalizer",w="Finalized",v="Forked";function D(n,t,r,e){this.tag=n,this._1=t,this._2=r,this._3=e}function y(n){var t=function(t,r,e){return new D(n,t,r,e)};return t.tag=n,t}function C(n){return new D(t,void 0)}function A(n){try{n()}catch(t){setTimeout(function(){throw t},0)}}function E(n,t,r){try{return t(r())}catch(e){return n(e)}}function b(n,t,r){try{return t(r)()}catch(e){return r(n(e))(),C}}var _=function(){var n=1024,t=0,r=0,e=new Array(n),i=!1;function u(){var u;for(i=!0;0!==t;)t--,u=e[r],e[r]=void 0,r=(r+1)%n,u();i=!1}return{isDraining:function(){return i},enqueue:function(o){var a;t===n&&(a=i,u(),i=a),e[(r+t)%n]=o,t++,i||u()}}}();var S=0,F=1,M=2,P=3,R=4,B=5,k=6;function N(n,l,s){var p=0,v=S,y=s,C=null,I=null,L=null,j=null,T=null,x=0,q=0,W=null,H=!0;function z(s){for(var q,J,O;;)switch(q=null,J=null,O=null,v){case M:v=F,y=L(y),null===j?L=null:(L=j._1,j=j._2);break;case P:n.isLeft(y)?(v=B,C=y,y=null):null===L?v=B:(v=M,y=n.fromRight(y));break;case F:switch(y.tag){case o:L&&(j=new D(d,L,j)),L=y._2,v=F,y=y._1;break;case t:null===L?(v=B,y=n.right(y._1)):(v=M,y=y._1);break;case i:v=P,y=E(n.left,n.right,y._1);break;case u:return v=R,void(y=b(n.left,y._1,function(n){return function(){p===s&&(p++,_.enqueue(function(){p===s+1&&(v=P,y=n,z(p))}))}}));case r:v=B,C=n.left(y._1),y=null;break;case e:T=new D(d,y,null===L?T:new D(d,new D(h,L,j),T,I),I),L=null,j=null,v=F,y=y._1;break;case a:x++,T=new D(d,y,null===L?T:new D(d,new D(h,L,j),T,I),I),L=null,j=null,v=F,y=y._1;break;case c:v=P,q=N(n,l,y._2),l&&l.register(q),y._1&&q.run(),y=n.right(q);break;case f:v=F,y=U(n,l,y._1)}break;case B:if(L=null,j=null,null===T)v=k,y=I||C||y;else switch(q=T._3,O=T._1,T=T._2,O.tag){case e:I&&I!==q?v=B:C&&(v=F,y=O._2(n.fromLeft(C)),C=null);break;case h:I&&I!==q||C?v=B:(L=O._1,j=O._2,v=M,y=n.fromRight(y));break;case a:x--,null===C&&(J=n.fromRight(y),T=new D(d,new D(m,O._2,J),T,q),(I===q||x>0)&&(v=F,y=O._3(J)));break;case m:x++,T=new D(d,new D(w,y,C),T,I),v=F,y=I&&I!==q?O._1.killed(n.fromLeft(I))(O._2):C?O._1.failed(n.fromLeft(C))(O._2):O._1.completed(n.fromRight(y))(O._2),C=null;break;case g:x++,T=new D(d,new D(w,y,C),T,I),v=F,y=O._1;break;case w:x--,v=B,y=O._1,C=O._2}break;case k:for(var K in W)W.hasOwnProperty(K)&&(H=H&&W[K].rethrow,A(W[K].handler(y)));return W=null,void(I&&C?setTimeout(function(){throw n.fromLeft(C)},0):n.isLeft(y)&&H&&setTimeout(function(){if(H)throw n.fromLeft(y)},0));case S:v=F;break;case R:return}}function J(n){return function(){if(v===k)return H=H&&n.rethrow,n.handler(y)(),function(){};var t=q++;return(W=W||{})[t]=n,function(){null!==W&&delete W[t]}}}return{kill:function(t,r){return function(){if(v===k)return r(n.right(void 0))(),function(){};var e=J({rethrow:!1,handler:function(){return r(n.right(void 0))}})();switch(v){case S:I=n.left(t),v=k,y=I,z(p);break;case R:null===I&&(I=n.left(t)),0===x&&(v===R&&(T=new D(d,new D(g,y(t)),T,I)),v=B,y=null,C=null,z(++p));break;default:null===I&&(I=n.left(t)),0===x&&(v=B,y=null,C=null)}return e}},join:function(n){return function(){var t=J({rethrow:!1,handler:n})();return v===S&&z(p),t}},onComplete:J,isSuspended:function(){return v===S},run:function(){v===S&&(_.isDraining()?z(p):_.enqueue(function(){z(p)}))}}}function I(t,r,e,i){var o=0,a={},c=0,f={},h=new Error("[ParAff] Early exit"),m=null,g=n;function w(r,e,i){var u,o,c=e,f=null,h=null,m=0,g={};n:for(;;)switch(u=null,c.tag){case v:if(c._3===n&&(u=a[c._1],g[m++]=u.kill(r,function(n){return function(){0===--m&&i(n)()}})),null===f)break n;c=f._2,null===h?f=null:(f=h._1,h=h._2);break;case l:c=c._2;break;case s:case p:f&&(h=new D(d,f,h)),f=c,c=c._1}if(0===m)i(t.right(void 0))();else for(o=0,u=m;o<u;o++)g[o]=g[o]();return g}function y(r){return function(e){return function(){delete a[r._1],r._3=e,function r(e,u,o){var a,d,g,v,D,y;for(t.isLeft(e)?(a=e,d=null):(d=e,a=null);;){if(g=null,v=null,D=null,y=null,null!==m)return;if(null===u)return void i(a||d)();if(u._3!==n)return;switch(u.tag){case l:null===a?(u._3=t.right(u._1(t.fromRight(d))),d=u._3):u._3=a;break;case s:if(g=u._1._3,v=u._2._3,a){if(u._3=a,D=!0,y=c++,f[y]=w(h,a===g?u._2:u._1,function(){return function(){delete f[y],D?D=!1:null===o?r(a,null,null):r(a,o._1,o._2)}}),D)return void(D=!1)}else{if(g===n||v===n)return;d=t.right(t.fromRight(g)(t.fromRight(v))),u._3=d}break;case p:if(g=u._1._3,v=u._2._3,g===n&&t.isLeft(v)||v===n&&t.isLeft(g))return;if(g!==n&&t.isLeft(g)&&v!==n&&t.isLeft(v))a=d===g?v:g,d=null,u._3=a;else if(u._3=d,D=!0,y=c++,f[y]=w(h,d===g?u._2:u._1,function(){return function(){delete f[y],D?D=!1:null===o?r(d,null,null):r(d,o._1,o._2)}}),D)return void(D=!1)}null===o?u=null:(u=o._1,o=o._2)}}(e,r._2._1,r._2._2)}}}return function(){var i,u,c=F,f=e,h=null,m=null;n:for(;;)switch(i=null,u=null,c){case F:switch(f.tag){case l:h&&(m=new D(d,h,m)),h=new D(l,f._1,n,n),f=f._2;break;case s:h&&(m=new D(d,h,m)),h=new D(s,n,f._2,n),f=f._1;break;case p:h&&(m=new D(d,h,m)),h=new D(p,n,f._2,n),f=f._1;break;default:u=o++,c=B,i=f,f=new D(v,u,new D(d,h,m),n),(i=N(t,r,i)).onComplete({rethrow:!1,handler:y(f)})(),a[u]=i,r&&r.register(i)}break;case B:if(null===h)break n;h._1===n?(h._1=f,c=F,f=h._2,h._2=n):(h._2=f,f=h,null===m?h=null:(h=m._1,m=m._2))}for(g=f,u=0;u<o;u++)a[u].run()}(),function(n){return new D(u,function(r){return function(){return function(n,r){var e;for(var i in m=t.left(n),f)if(f.hasOwnProperty(i))for(i in e=f[i])e.hasOwnProperty(i)&&e[i]();f=null;var o=w(n,g,r);return function(n){return new D(u,function(n){return function(){for(var n in o)o.hasOwnProperty(n)&&o[n]();return C}})}}(n,r)}})}}function U(n,t,r){return new D(u,function(e){return function(){return I(n,t,r,e)}})}return D.EMPTY=n,D.Pure=y(t),D.Throw=y(r),D.Catch=y(e),D.Sync=y(i),D.Async=y(u),D.Bind=y(o),D.Bracket=y(a),D.Fork=y(c),D.Seq=y(f),D.ParMap=y(l),D.ParApply=y(s),D.ParAlt=y(p),D.Fiber=N,D.Supervisor=function(n){var t={},r=0,e=0;return{register:function(n){var i=r++;n.onComplete({rethrow:!0,handler:function(n){return function(){e--,delete t[i]}}}),t[i]=n,e++},isEmpty:function(){return 0===e},killAll:function(u,o){return function(){var a=0,c={};function f(r){c[r]=t[r].kill(u,function(t){return function(){delete c[r],a--,n.isLeft(t)&&n.fromLeft(t)&&setTimeout(function(){throw n.fromLeft(t)},0),0===a&&o()}})()}for(var l in t)t.hasOwnProperty(l)&&(a++,f(l));return t={},r=0,e=0,function(n){return new D(i,function(){for(var n in c)c.hasOwnProperty(n)&&c[n]()})}}}}},D.Scheduler=_,D.nonCanceler=C,D}();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(n){"use strict";n["Control.Parallel.Class"]=n["Control.Parallel.Class"]||{};var t=n["Control.Parallel.Class"];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),function(n){"use strict";n["Control.Parallel"]=n["Control.Parallel"]||{};var t=n["Control.Parallel"],r=n["Control.Category"],e=n["Control.Parallel.Class"],i=n["Data.Foldable"],u=function(n){return function(t){return function(r){return function(u){return e.sequential(n)(i.traverse_(n.Applicative1())(t)(function(t){return e.parallel(n)(r(t))})(u))}}}};t.parTraverse_=u,t.parSequence_=function(n){return function(t){return u(n)(t)(r.identity(r.categoryFn))}}}(n),function(n){"use strict";n["Effect.Class"]=n["Effect.Class"]||{};var t=n["Effect.Class"];t.liftEffect=function(n){return n.liftEffect},t.MonadEffect=function(n,t){this.Monad0=n,this.liftEffect=t}}(n),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(n){"use strict";n.Partial=n.Partial||{};var t=n.Partial,r=n.Partial;t.crashWith=r.crashWith}(n),function(n){"use strict";n["Partial.Unsafe"]=n["Partial.Unsafe"]||{};var t=n["Partial.Unsafe"],r=n["Partial.Unsafe"],e=n.Partial;t.unsafeCrashWith=function(n){return r.unsafePartial(function(t){return e.crashWith(t)(n)})}}(n),function(t){"use strict";(n["Unsafe.Coerce"]=n["Unsafe.Coerce"]||{}).unsafeCoerce=function(n){return n}}(),function(n){"use strict";n["Unsafe.Coerce"]=n["Unsafe.Coerce"]||{};var t=n["Unsafe.Coerce"],r=n["Unsafe.Coerce"];t.unsafeCoerce=r.unsafeCoerce}(n),function(n){"use strict";n["Effect.Aff"]=n["Effect.Aff"]||{};var t=n["Effect.Aff"],r=n["Effect.Aff"],e=n["Control.Applicative"],i=n["Control.Apply"],u=n["Control.Bind"],o=n["Control.Monad"],a=n["Control.Parallel"],c=n["Control.Parallel.Class"],f=n["Data.Either"],l=n["Data.Foldable"],s=n["Data.Function"],p=n["Data.Functor"],d=n["Data.Monoid"],h=n["Data.Semigroup"],m=n["Data.Unit"],g=n.Effect,w=n["Effect.Class"],v=n["Partial.Unsafe"],D=n["Unsafe.Coerce"],y=new p.Functor(r._parAffMap),C=new p.Functor(r._map),A={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 v.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 v.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},E=function(n){return function(){var t=function(n){return r._makeFiber(A,n)}(n)();return t.run(),t}},b=new i.Apply(function(){return y},r._parAffApply),_=new o.Monad(function(){return M},function(){return S}),S=new u.Bind(function(){return F},r._bind),F=new i.Apply(function(){return C},o.ap(_)),M=new e.Applicative(function(){return F},r._pure),P=new w.MonadEffect(function(){return _},r._liftEffect),R=new c.Parallel(function(){return B},function(){return _},D.unsafeCoerce,r._sequential),B=new e.Applicative(function(){return b},function(n){return c.parallel(R)(e.pure(M)(n))}),k=new h.Semigroup(function(n){return function(t){return function(r){return a.parSequence_(R)(l.foldableArray)([n(r),t(r)])}}}),N=s.const(e.pure(M)(m.unit)),I=new d.Monoid(function(){return k},N);t.launchAff=E,t.launchAff_=function(n){return p.void(g.functorEffect)(E(n))},t.nonCanceler=N,t.functorAff=C,t.applyAff=F,t.applicativeAff=M,t.bindAff=S,t.monadAff=_,t.monadEffectAff=P,t.functorParAff=y,t.applyParAff=b,t.applicativeParAff=B,t.parallelAff=R,t.semigroupCanceler=k,t.monoidCanceler=I,t.makeAff=r.makeAff}(n),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(n){"use strict";n["Effect.Ref"]=n["Effect.Ref"]||{};var t=n["Effect.Ref"],r=n["Effect.Ref"];t.new=r.new,t.read=r.read,t.write=r.write}(n),function(n){"use strict";n["Node.Encoding"]=n["Node.Encoding"]||{};var t=n["Node.Encoding"],r=n["Data.Show"],e=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}(),o=function(){function n(){}return n.value=new n,n}(),a=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 i)return"UTF8";if(n instanceof u)return"UTF16LE";if(n instanceof o)return"UCS2";if(n instanceof a)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=i,t.UTF16LE=u,t.UCS2=o,t.Base64=a,t.Latin1=c,t.Binary=f,t.Hex=l,t.encodingToNode=function(n){if(n instanceof e)return"ascii";if(n instanceof i)return"utf8";if(n instanceof u)return"utf16le";if(n instanceof o)return"ucs2";if(n instanceof a)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),function(t){"use strict";(n["Node.Process"]=n["Node.Process"]||{}).process=process}(),function(n){"use strict";n["Node.Process"]=n["Node.Process"]||{};var t=n["Node.Process"],r=n["Node.Process"],e=r.process.stdout,i=r.process.stdin;t.stdin=i,t.stdout=e}(n),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(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(n){"use strict";n["Effect.Exception"]=n["Effect.Exception"]||{};var t=n["Effect.Exception"],r=n["Effect.Exception"];t.throw=function(n){return r.throwException(r.error(n))}}(n),function(t){"use strict";(n["Node.Buffer"]=n["Node.Buffer"]||{}).toStringImpl=function(n){return function(t){return function(){return t.toString(n)}}}}(),function(n){"use strict";n["Node.Buffer"]=n["Node.Buffer"]||{};var t=n["Node.Buffer"],r=n["Node.Buffer"],e=n["Node.Encoding"];t.toString=function(n){return r.toStringImpl(e.encodingToNode(n))}}(n),function(n){"use strict";n["Node.Stream"]=n["Node.Stream"]||{};var t=n["Node.Stream"],r=n["Node.Stream"],e=n["Control.Applicative"],i=n["Control.Bind"],u=n["Data.Either"],o=n["Data.Show"],a=n.Effect,c=n["Effect.Exception"],f=n["Node.Buffer"],l=n["Node.Encoding"],s=r.readChunkImpl(u.Left.create)(u.Right.create),p=function(n){return function(t){return r.onDataEitherImpl(s)(n)(t)}},d=function(n){return function(t){return p(n)(i.composeKleisliFlipped(a.bindEffect)(t)(function(n){if(n instanceof u.Left)return c.throw("Stream encoding should not be set");if(n instanceof u.Right)return e.pure(a.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=d,t.onDataString=function(n){return function(t){return function(r){return d(n)(i.composeKleisliFlipped(a.bindEffect)(r)(f.toString(t)))}}},t.onDataEither=p,t.writeString=function(n){return function(t){return r.writeStringImpl(n)(o.show(l.showEncoding)(t))}},t.onEnd=r.onEnd}(n),function(n){"use strict";n.ABC128C=n.ABC128C||{};var t=n.ABC128C,r=n["Control.Applicative"],e=n["Control.Bind"],i=n["Control.Category"],u=n["Data.Array"],o=n["Data.Boolean"],a=n["Data.Either"],c=n["Data.EuclideanRing"],f=n["Data.Foldable"],l=n["Data.Functor"],s=n["Data.HeytingAlgebra"],p=n["Data.Int"],d=n["Data.Maybe"],h=n["Data.Monoid"],m=n["Data.Semigroup"],g=n["Data.Show"],w=n["Data.String.Common"],v=n["Data.Tuple"],D=n["Data.Unit"],y=n.Effect,C=n["Effect.Aff"],A=n["Effect.Class"],E=n["Effect.Ref"],b=n["Node.Encoding"],_=n["Node.Process"],S=n["Node.Stream"],F=n["Partial.Unsafe"],M=function(n){return w.split(" ")(n)},P=C.makeAff(function(n){return function(){var t=E.new("")();return S.onDataString(_.stdin)(b.UTF8.value)(function(n){return function(){var r=E.read(t)();return E.write(r+n)(t)()}})(),S.onEnd(_.stdin)(function(){var e=E.read(t)();return n(r.pure(a.applicativeEither)(e))()})(),h.mempty(C.monoidCanceler)}}),R=function(n){return a.either(function(n){return F.unsafeCrashWith(n)})(i.identity(i.categoryFn))((t=n,h=w.split("\n")(w.trim(t)),e.bind(a.bindEither)(a.note("nmLine")(u.head(h)))(function(n){var t=u.dropEnd(1)(u.drop(1)(h));return e.bind(a.bindEither)(a.note("pLine")(u.last(h)))(function(i){return e.bind(a.bindEither)(a.note("n m")(function(n){var t=u.mapMaybe(p.fromString)(M(n));return 2===t.length?new d.Just(new v.Tuple(t[0],t[1])):d.Nothing.value}(n)))(function(n){var e,h=u.mapMaybe(p.fromString)(M(i)),w=l.map(l.functorArray)(function(n){return u.mapMaybe(p.fromString)(M(n))})(t);return r.pure(a.applicativeEither)(g.show(g.showInt)((e=n.value0,function(n){return function(n){return function(t){var r=function(n){if(u.length(n)===e)return[n];if(o.otherwise)return m.append(m.semigroupArray)(r(u.snoc(n)(!1)))(r(u.snoc(n)(!0)));throw new Error("Failed pattern match at ABC128C (line 79, column 5 - line 79, column 48): "+[n.constructor.name])},i=r([]);return u.length(u.filter(function(r){return f.all(f.foldableArray)(s.heytingAlgebraBoolean)(function(n){var e=d.fromJust()(u.uncons(n.value1));return t[n.value0]===c.mod(c.euclideanRingInt)(u.length(u.filter(function(n){return r[n-1|0]})(e.tail)))(2)})(u.mapWithIndex(v.Tuple.create)(n))})(i))}}})(n.value1)(w)(h))+"\n")})})})));var t,h},B=C.launchAff_(e.bind(C.bindAff)(P)(function(n){return e.bind(C.bindAff)(r.pure(C.applicativeAff)(R(n)))(function(n){return A.liftEffect(C.monadEffectAff)((t=n,l.void(y.functorEffect)(S.writeString(_.stdout)(b.UTF8.value)(t)(r.pure(y.applicativeEffect)(D.unit)))));var t})}));t.main=B,t.solve=R}(n),n.ABC128C.main();
},{}]},{},["Focm"], null)