!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=16)}({0:function(t,e,n){"use strict";var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(o,u){function i(t){try{l(r.next(t))}catch(t){u(t)}}function a(t){try{l(r.throw(t))}catch(t){u(t)}}function l(t){t.done?o(t.value):new n(function(e){e(t.value)}).then(i,a)}l((r=r.apply(t,e||[])).next())})},o=this&&this.__generator||function(t,e){var n,r,o,u,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return u={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(t,i)}catch(t){u=[6,t],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},u=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},i=this;e.__esModule=!0;var a=u(n(1));function l(t){var e,n;return o(this,function(r){switch(r.label){case 0:e=t.split(/\s+/).filter(function(t){return t.length>0}),n=0,r.label=1;case 1:return n<e.length?[4,e[n]]:[3,4];case 2:r.sent(),r.label=3;case 3:return n++,[3,1];case 4:return[2]}})}e.readInput=function(){return new Promise(function(t,e){a.default.readFile("/dev/stdin","utf8",function(n,r){n?e(n):t(r)})})},e.getFoolIterator=l,e.getFoolNextInt=function(){return r(i,void 0,void 0,function(){var t,n;return o(this,function(r){switch(r.label){case 0:return[4,e.readInput()];case 1:return t=r.sent(),n=l(t),[2,function(){return parseInt(n.next().value)}]}})})},e.getChottoMashinaNext=function(){return r(i,void 0,void 0,function(){var t,n;return o(this,function(r){switch(r.label){case 0:return[4,e.readInput()];case 1:return t=r.sent(),n=function(){var e,n,r;return o(this,function(o){switch(o.label){case 0:e=-1,n=0,o.label=1;case 1:return n<=t.length?" "!==t[n]&&"\n"!==t[n]&&n!==t.length?[3,5]:-1!==e?[3,2]:[3,6]:[3,7];case 2:return r=t.substring(e,n),e=-1,[4,r];case 3:o.sent(),o.label=4;case 4:return[3,6];case 5:-1===e&&(e=n),o.label=6;case 6:return n++,[3,1];case 7:return[2]}})}(),[2,function(){return n.next().value}]}})})},e.getChottoMashinaNextInt=function(){return r(i,void 0,void 0,function(){var t;return o(this,function(n){switch(n.label){case 0:return[4,e.getChottoMashinaNext()];case 1:return t=n.sent(),[2,function(){return parseInt(t())}]}})})}},1:function(t,e){t.exports=require("fs")},16:function(t,e,n){"use strict";var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(o,u){function i(t){try{l(r.next(t))}catch(t){u(t)}}function a(t){try{l(r.throw(t))}catch(t){u(t)}}function l(t){t.done?o(t.value):new n(function(e){e(t.value)}).then(i,a)}l((r=r.apply(t,e||[])).next())})},o=this&&this.__generator||function(t,e){var n,r,o,u,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return u={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(t,i)}catch(t){u=[6,t],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},u=this;e.__esModule=!0;var i=n(0),a=[0,1,2,3],l=function(t){for(var e=0,n=a;e<n.length;e++){var r=n[e];t[0][2][1][r]=0,t[r][0][2][1]=0,t[0][1][2][r]=0,t[r][0][1][2]=0,t[2][0][1][r]=0,t[r][2][0][1]=0,t[0][r][2][1]=0,t[0][2][r][1]=0}};r(u,void 0,void 0,function(){var t,e,n,r,u,c,f,s,h,p,b,d,v,g,y,w,x,_,m,M,I,S,k,P,j,O,N,C,T,F,E,G,q,D,z,A,B,H;return o(this,function(o){switch(o.label){case 0:return[4,i.getChottoMashinaNextInt()];case 1:if(t=o.sent(),3===(e=t()))return console.log(61),[2];for(n={},r=0,u=a;r<u.length;r++)for(n[T=u[r]]={},c=0,f=a;c<f.length;c++)for(G=f[c],n[T][G]={},s=0,h=a;s<h.length;s++)for(z=h[s],n[T][G][z]={},p=0,b=a;p<b.length;p++)H=b[p],n[T][G][z][H]=1;for(l(n),d=function(t){return t%1000000007},v=5;v<=e;v++){for(g={},y=0,w=a;y<w.length;y++)for(g[T=w[y]]={},x=0,_=a;x<_.length;x++)for(G=_[x],g[T][G]={},m=0,M=a;m<M.length;m++)for(z=M[m],g[T][G][z]={},I=0,S=a;I<S.length;I++)for(H=S[I],g[T][G][z][H]=0,k=0,P=a;k<P.length;k++)j=P[k],g[T][G][z][H]=d(g[T][G][z][H]+n[j][T][G][z]);l(g),n=g}for(O=0,N=0,C=a;N<C.length;N++)for(T=C[N],F=0,E=a;F<E.length;F++)for(G=E[F],q=0,D=a;q<D.length;q++)for(z=D[q],A=0,B=a;A<B.length;A++)H=B[A],O=d(O+n[T][G][z][H]);return console.log(O),[2]}})})}});
