Dada una matriz de dígitos 1, 2, …, 9, hemos de contar cuantas submatrices 1×9 (subfila consecutiva de tamaño 9) y cuantas submatrices 9×1 (subcolumna consecutiva de tamaño 9) contienen todos los dígitos 1, 2, …, 9.
Por ejemplo, fijaos en esta matriz:
1234567891 2345678912 3456789123 4567891234 5678912345 6789123456 7891234567 8912345678 9123456789
Resulta que en cada fila hay dos subfilas de tamaño 9 con todos los dígitos, y en cada columna hay una subcolumna de tamaño 9 con todos los dígitos (la misma columna es una subcolumna). Por tanto, en este caso la respuesta sería 18 10.
Entrada
La entrada tiene varios casos. Cada caso comienza con dos números n, m en una primera línea. Después viene una matriz de n×m dígitos 1, 2, …9 (n líneas con m dígitos cada una).
Salida
Para cada caso, el programa tiene que escribir en una nueva línea el número de subfilas y el número de subcolumnas de tamaño 9 donde aparecen todos los dígitos 1, 2, …, 9.
Observación
No hacen falta optimizaciones para superar los juegos de prueba privados. Qualquier implementación más o menos razonable los pasará.
Evaluación sobre 10 puntos:
Entendemos por solución rápida una que es correcta, de coste lineal y capaz de superar los juegos de prueba públicos y privados. Entendemos como solución lenta una que no es rápida, pero es correcta y capaz de superar los juegos de prueba públicos.
Input
9 9 288676776 629375814 752291357 341417161 164978235 935829482 493524593 576783648 817112929 9 10 7629814537 6547839216 4985162734 3286594713 7462395817 6921837546 3298471563 7984352167 4673285914 10 9 126748953 247638554 383826612 118275191 851349426 579182767 692417835 464554379 735961248 926793983 21 18 876434658192736458 435796841237659526 629846357128946789 771259836487951254 239634275819639677 378515162741596832 946996731322327193 595178227584321965 181343916258545311 862731495666898448 229482584973324527 317627849135163774 454864353497782982 763259678235419151 638245739168254335 985935127864976599 546342869517638243 171243896571843816 892156982347595767 328524719365827428 216812943756861674 23 14 33247862753941 96188753577138 67861875614293 25939381321655 52794647959222 71353928146757 19516219862346 88672494435854 44425136798249 36143517289641 93229863574122 17367785916728 64498372823673 82786591341515 78921345687999 29832956174381 55514517429836 41655869235147 33273622842254 96149533516462 17367488998718 45293681754673 61529874361529 11 20 36651843297568194325 47538261929845137624 55941964931725846391 18671429853562819473 84186253479862145736 62324156789342156722 49653872145279368187 93485327619485362719 71498531762187596348 26354621798693247158 37915783264915783264 26 12 532649817533 673177564422 812819726778 748385792164 551684279336 999986188241 266761435585 124562713899 485273941617 357428757955 633317862459 517869324158 171165599393 449631985742 698864178244 865476436811 254378691536 933573225357 582232767199 726915853985 371747342773 117189519562 449621984424 641395876248 888864338811 678459231687 25 30 694857321964873516489725341689 774736219485726319842754175165 158364185973264581794678521349 825297643815726958176943297482 986859413724659817561342986753 549676259254178326998261354791 431528963147564298317567649457 217931591494588431625979432396 393762635338195948173526718144 762185374963726669769978863638 674443829541637973252813547965 158714717635849216839724156519 435267198889452452484442735873 669869158642973518443215221782 371614839576214891825673482229 286961432587391324157839679437 532513976428558777778358394396 998316472865139135516186958143 827297635148284649932592545958 714539412876543966261964713665 753614892579714283659727166511 741598362754125782394165827394 265962418375976338685471239682 978635241925763891243563482917 692731854237568941327659841329 9 1 4 7 5 8 3 1 6 2 9 15 19 3645687219345867318 2818369527438165787 5754734762513894276 8118155169784326151 1599474617953283529 6972395148679142835 7376845697123849664 9463324168597231943 4285384257961837452 3637516472513898787 2811133878649125378 4928761354937654812 8254617938254617191 4691832574693812574 7243914765823914225 24 12 795836412791 728461539782 826889951869 764542239684 675428319238 199913885715 931364466173 417235618947 552187729496 288626154522 343772973351 964391532664 196159841888 836245397189 615818465775 774435226433 427996674247 286529959956 568161518592 349652881721 151374143364 992783332188 633247797819 815359148672 17 1 1 9 4 8 6 7 5 3 2 1 4 8 6 7 9 3 5 30 29 65142987367342968158152796348 89163245789173526472431867592 93571648254713982633926475819 67261953478898826594387125966 24576291621935647821215153127 38218763712385746948449244751 56425817934266952719894881678 71889324376128595366778718433 12742189536751347285961437282 85967572869417253137133616844 45654435152582446823552532515 68133678275663121294626945367 92399916491534834678435359959 29828291548299598355347173126 33671663726318669527214224897 84916752383656375446951691978 21542381967145913962778288332 16285825634921782739863466481 57764943516872927181182915294 38479523956784154513499869625 45253152739468131852647392513 87867485961239296675513177159 64385249713697546391827543741 93531658149273658294136734868 79612959438126757483619221996 16996361924735861927918653487 31144851672384951726579481632 52928763541938627562491836275 28279538164971532868892135764 38971264539872783169542837163 8 15 235148967235418 326487195684327 812764539841276 173458296173548 213597864293517 789245631784295 539872614593782 892361745892316 4 13 9562783419562 6327498516327 2784963512748 4956832174956 19 23 75634128979318456279752 54816975329641785229338 17676798597326148397526 62922575234179685685291 39358415269731485468419 93781927356414257936867 26497352618945372152943 48564869273519846814174 81243243851926781543685 72135139135827469771492 57879681492683147569826 15658398939738549261738 64982976518342579618251 49316825764139825417369 58421769356481273986547 31795419637824159823764 38617594237126958471326 37942158637982641573928 19673485296148379526148 8 14 87361594278136 21876953468271 41852739648152 98516732498561 46851932746851 91782564391782 45182793645218 47385961234785 8 23 41729368541792356841297 27436158927239561874392 39812576485912358467912 29357146829537184637592 21637549812634975182463 16529873415627893712456 86275194386152769438152 42591738656148392758416 17 5 63636 31969 49325 88788 12171 77517 96292 54444 25853 31336 13729 49168 62685 88571 77214 96942 54497 1 9 987251643 19 10 9623548719 8529164378 1483962578 4972976341 5793469612 9836417526 2253191457 6116883884 3349555975 1664434739 7822948163 8788622292 3271339341 1497716956 4535291417 9953857685 2397164528 5149585874 6677473739 25 15 637245189764326 661665427485652 332118743117989 287289316543798 946656248291474 824731111356863 158194565839541 573347992928337 795222689662115 419473874474229 931865427785693 386996854213784 663558738848952 868179342557368 229785413696875 532652961939461 464371686425526 177227295361197 785483527194683 321834134762859 651248379657912 991563742893774 145296837149248 618211427596835 639857421368957 26 2 22 84 63 95 17 76 48 31 59 22 84 65 93 16 77 49 38 71 94 63 52 25 16 87 49 38 9 16 7689245137246589 9516238741695283 6251784398514168 3564719823522456 2658134976251834 5655199855287345 9182345769139941 4623579184263759 4287965312478695 7 8 63774162 59814466 11331926 83224649 82419924 67281848 64954112 10 20 45739218461927534685 31739542861374958261 26143785926982517434 58669254781369254789 62471853692741853696 96219485732618496778 19857312649735182643 81319563478216959932 78925768391483625197 81567324918743961825 7 28 6459817236415897263941587623 4137962854312839617549823167 5963871245173862947682531974 1742359687421359762841975326 8137652948173658154639728154 4396152789364275189364297581 9314785623912935781462938751 8 6 123128 117446 262568 154321 384553 254233 134547 132965 19 6 936891 549555 153616 672747 391488 817263 224922 768379 485134 536895 679551 143698 352463 995726 881387 217912 766239 428174 534845 3 27 364289157364892519432867519 495872613475912864314659872 635491827694351798623745198 2 12 962418573962 714935862174 14 11 58496237158 35716328549 29262782999 48593271468 12673459814 66945936282 97859124763 71439825677 83123663391 54314548156 35282787525 39764258139 42517369842 38861257439 26 27 654673821947563825128349677 113861191249357681439275458 339922446178925347526893141 762184679352177548163927599 521347985623594718593264382 485236752183769456951374826 246519312459684132759585634 897754225899711915364782913 958497536218529471386628275 174675463732634815973426769 612868148916853492765183456 739921891544545269345871692 363563927184476598123467548 544182634159768264237589614 282449859425192351927684351 518296562398287689735241647 795314978564913721643785921 927737644273328419372654839 859364789521648392579815185 471475192156843777148932657 163758416239752438165794293 646121328467591342481539766 334987214952368789456321772 785641329786514293457186218 167892453421897651243435144 436518297453861273594218621 29 12 174752918634 945146273891 619875128123 351757797742 863419275535 738593563216 426948349378 282131911989 597684832494 771262686757 814326454561 945875127226 619258743613 136345298175 323964569812 448256371978 217778935338 561833818741 683641293465 359592142257 496117664694 872489756589 134325577122 725963481833 966857329146 389624175318 941649285371 812537946865 159243876159 17 15 239653487123695 572849731566557 498112118333712 615754763591824 353961579862438 844298294598266 781543927625181 167335845734949 926426356587373 299687452319697 435372681945735 542213549867552 173259846173818 958234671656466 114718362495729 352941867223741 598274631536784 30 4 5179 4348 9525 2994 6456 7283 1611 3762 8837 5175 4428 2549 6981 5352 1296 7674 9513 3232 8967 4848 1381 2169 5634 9476 6795 7813 8322 3257 4548 1981 15 12 315624978513 681492753656 471652483948 879845316292 194532178674 338476921583 975218364337 516985237429 789347526161 293652714815 645326819743 162897435956 455365646298 825936147872 334875631924 26 20 63964857217693584235 85387647153289647124 41475179246831572993 19723585613729485668 56299311567983241751 32511785938746215347 94658979881671543289 27132851364789215572 78866446479913821416 61545221795468323825 25887133722872459136 43114863846734215896 32493498516372894559 99778679352148618241 16223235633223882166 84685731927567997837 57986314254634526723 51316934152786271598 62897526431899143352 14586273918541469475 35469662795158634914 87756899849372752681 46139487526115387269 23249158243769815246 79271845632923998623 98925871364939526737 12 3 885 421 136 259 942 618 577 793 364 825 431 186 20 14 82964715382923 26687461675256 37458642479192 79321297834569 15749526718331 44196179253174 52264384531548 91915858967285 68872935146817 83533313292423 36857236184952 29648762573691 17384185425766 74421458618139 48266849721534 95999611399348 82115597926235 61716974832517 57948123567984 38135476298135 25 3 688 397 813 922 749 255 431 164 576 619 398 925 881 597 742 133 418 366 954 679 281 735 897 122 543 24 27 463579812271598463719452864 613618597243465278193642579 985623471958724916379825418 847361592897218356479218351 867432591562834765289314925 992985147289635174916382563 133341247358964531278945687 229398325649174295831624792 851453982167352896147472816 577135665772539684157293258 484242875936412448894521449 655971638425791119387147134 396329245519928221626788375 718417854697275677561899921 923584777283484732413375647 242666126861146363928456176 139898519318363495712864463 674753691284557853269412858 566175482394617589245631715 483932963248751943286723294 855441339374856219378416529 398346387125946378354962182 717538217659418328192764531 921245917836491875236985147 19 4 6522 4988 8411 1779 9134 3847 2265 5353 7696 6822 4985 8518 9479 1231 3654 5367 2743 7192 6826 19 6 887462 111146 249631 366513 794987 655398 973274 438759 522825 811447 147468 983132 769316 495583 356271 674894 232659 828925 511747 29 3 751 393 682 865 247 414 139 976 528 781 852 267 395 643 138 416 974 529 224 633 372 845 718 167 996 581 459 223 634 5 19 5483217692538471692 5379168245372146895 6593471286973425168 4185397624153897624 1697842531694782531 4 26 93587261498396274153986274 14973582614379568241379856 65273481926591652487391652 72438516972584971632854971 10 19 1728437612958473162 2963862417953648232 4359271653849251679 6492173854216973896 7278361724953867127 8617923458167539243 5847361928457391268 9536712894536729481 3188415379628116254 4821376958243786915 9 28 9482532754618932596481735233 8536432951876259347629851365 4965372184731269584731485296 3195874261395818327514968317 1273645891273483675912241454 7719254368764392781594326781 6147928465137972796854132722 2759138624759127932851647979 5824713596852741398761593248 28 1 2 4 8 3 5 7 6 1 9 2 4 5 8 6 3 7 5 1 4 2 8 9 6 3 7 5 1 4 7 27 941652378943275168925473168 973158462791534629873516429 853462179829673514892673514 287543961287379182645379182 439621758347268193542719683 943675128937469852193456827 652839147697584213745986132 23 25 4651372859416348763251984 7399183672594176835249716 9813745627349517236843131 2964538716627584361928756 6747982471536986978345123 3575266795715642389774847 5186397244972638512497679 1928578633813689724542665 8332495268134579937126458 4469629583217469693632914 7655351756489312575888132 3898964427368195766211481 5211843985685576431969393 9144182313541811118354726 1693736836946721283697541 8917217194784146875923272 6376529841487296351775659 2239856379412386597846869 4722915762483967125232915 5469172388969636847529136 3551548627391451985462371 7889147653246572981345672 9645138276942983475162983 29 12 491268375493 946352817662 263555186949 178873244895 889781219557 615938472188 432497721331 994664493424 557112535276 728249658713 366726364962 141585249649 273479812897 889317176715 626134987588 472253765664 927696624371 583861438129 769922591953 334748353838 945361872412 351876249287 498261375766 316237196845 392657148391 247193865274 923157846293 319963175284 527498631527
Output
2 8 18 1 3 14 45 66 26 66 51 10 17 73 106 107 0 1 55 23 11 66 0 4 90 142 38 0 19 0 80 48 35 0 56 0 0 28 1 0 7 40 25 72 0 23 31 6 0 0 49 6 64 0 0 0 0 38 23 0 7 0 18 22 103 77 22 77 24 39 0 33 20 21 57 73 0 10 22 56 0 17 91 87 0 26 0 37 0 27 34 0 37 0 45 8 61 9 0 11 57 0 71 77 25 66