def test_simple(self):
     self.assertEqual(
         "6", " ".join(
             map(
                 str,
                 find_approximate_pattern_matches("ATTCTGGA",
                                                  "CGCCCGAATCCAGA", 3))))
 def test_extra_dataset(self):
     genome = "ACTTCATACAACTGACAGCGGACCCCAAGAAGGGTGTTCACTCCTGTTCACTATACCCATAGGGCGAACTTAAAGAGGACGTGATTGAGAACATCTCGACGTGCGATGACCTACTAACTGTCAGGAGCATCAATCACGTTGAAACCAAGGCCCTCGCTAATTATGCATTAGCATTAACTCTCACGAACACACGCGGTTGGCTCTCCCGGGAGTCCGCCAGAGGATGACCAGCTGGGACGCACGTGGTCAGGGTGAAGACCGCTGTTACGACATCAGCACTCATGTGTGGTGGCAAGCTACTGACTTTGAGCACGCCAAGACAGTACTGTCGAGGGTACACGAGCAATAGATCACAGCCTAATCGGGGTATTGGGAAATATTTTTAATAGTTGGGCAGGAGGTCTGGGGGGTCACATTATGCGAGAGCGTGCCGTATGAATATATAGGAAAATAGTTGCTAGGAGGCATTGCCAGGTCTAACCCGCTACCAACTCAGGTACTGCAACATCAGGCGGGAAGGCGAGTCGGGTTAATTTGCGGCATACGAGTACAATCTTATGATTCGCAACCTAATGCTTGTGAGCATGGCTTTATTCCGAAGGCGGCCGGAGGTCGAGCCGCCACGGTAAGCGGACCTACAACAGATTACCTTACCAGCTTGATATTGGCGACATAGACCACTGAGGGATAGCAGCTTTGTGCCTGCGATGTACTCACTGTGCGCCAGGAAACTAAATCTTATTACCCCCTTGTCTCTGAACACGAATGACGAGATTGGGATAGGACACAAGTAGTGTGGCGTGTAGGTCACGCCATATGTGCACACACTTGATCCAAGCCCAAAACTCCGAATGCTGAATAATGACACGTCGATGTTTCCCCTACCGAAATTACAGGGGGTGCCCTTCTCAATAGGGCCGACTGGACGCTGTCCCGCAGATTGTTTTAGTCCATTAACGTGGTGATGCTGCTACTAAACCAAACATTAACTACGGCGGCGGGAAATGCGCCTTAATTTAATCGAGGGCCGGCTGGGTTATCGAGTTTTACGGCTAGCTACGCGTGTGATCTCCCCCCGGTCCTGATTACCAGAGTCGCGTTCAATCCCAACCAGCTAAAGAGCGGAACACAAGTCGAATTGAGTGATGCAATGGGCTCGCAGCGTCCCATGGGGGTAGGTCCTCCCCCCGGTAAAACCCGCTCTTAATGTCCTGTCGCAGAATCCCCTAACTAAGGGACACAGCGCCGCTAACTTGGTCCTAACACAAGCAGATATCAGCTTAGCCTGCCTAATTGTGTTCAAGCCCTCAATCTGCACATGGGCAAAGGAATACGACCCTCAAATCTCTTTGGCTCACTATAGTGACTGCTCTTAAACCCCTGGCATCTCTATTTCAATGGCGAATCGAAAAGTCGCGCGCTAATCCTGAGAGACAGTTACAAATCTCCATCACACCGGCCGTCGCTCGCTCGATTTCTGCCACCGTCGTGTCATCTCGCCTTACCAGCACCCAAAGGGAAGACCGCAAGTGATATTAGGACAACGTTCATTCACATGCGGACTATATGCTGCTGGCCATCATTGAGCGGCCGGTATTAGCCCAAGCGGTCGCAGTCGATGTTGAACCACAGAAGGCATGTGTCTAATTTCCGGGGCGTATCGGGTTATTCTGCTCGTTTAGGAGCCGTTCGCGCCAGGACCGTAAGGGAACTTGGAATTTACGTGCGCCTCTTAGTCCGGTCCAACCGCGCGTGATATAGGTGCAAGTAAGTACAACCGCAATTGATTCACTCTTACCTCCGGACGGAAGCGACGGCTCACTTTCGGGATCAGTTTTGTCTCACTACGACTGATCGAAGGGTCTTAGGTCGGTATCGTTAATATCACGCAGACGTCAGTGAACCAGTACCACGAGGTAGCAAGGTAAATGCCATAGCTGGCACATCGGACCAGCTTTGTCCGAAACCGTTCTAGAAACGTGAAGCTCCCATGTCCGCTCAAGCTTATAGTTTTTTTAATGACATAAAGTGCCCGACGTCCACTCACGAATTGCGCAGACTTGGCCCACTCGGGAGACCTATAAATGAAACCAGATAGTCTCTAGTATCGGTTCACATGAGTAGGTACTGGAGGATTGATTTTATATTATAGTAGGGTCCTTTGATCGTGGTATAGAGCCGAGCATTTTCATCTAAAAAGCTATCTAAGCGGATCTGCCCATACGCGCTACTGGTGGCCTACGGAGATCAACCCCTTTTGGACGCAGCGTGAGCCATTAAACTAGCGATATGTGAACATCTCCCTTAGGGAGGGCGCCACGTTGTAGTTGGGGTCGGCCATCGCGATTATGAGGGCGAAGTGTGACTTGAGTTCGTCACGCGCAAAACCACAACCTCCGTTAGTCTCATGTTTCGACTACGGCCAAACGTTAGGTACAGCGATCTTAACCCTCTCAAAGTTGAAACACGCGCCTAGGCTGGTGGCTAAAACTAGCTGGATTCAGCTTGACCGCAGGACGGGCCGGAAGAGACGTTGCGTGATTACATTGGAACTTAGGTCAAATTTGACGCCTATCCCCAATCAAACCATATAATGTACGGTGGTTATAATGCTGGCCAATGAGCAAGCCAGCTAGACATTGTGTTGATGTGCCAATTGTAAGAATTCATCTATCGGCAACGGTCAATACCTTTCTTCATGGACTTGTTATCATGTAGAACCAGCGAAGGCACCTTACAAATTCGCCCGATGACTAGCTACTGCGTTCCCAAAACGACAGCAATTTCTATAGGCGGTACCCACGTCGCTTAAGAAGGCTGCACTCCCCCCCCCAAGCATTTACCACCGAGAACTAAAATCGCCTTATTCAGTGCACCGGCCGCACGAACCAATACAGTACCCTGTGTTTCGTGACTGAGACAGTGACACCTCTCGGGTGTAATTCGAGCTCAAGGTAGGTGTTTGTGGAGCTTCGACCGGTTATGATGCGCGAGTTGGGGCTCACTCACGGTTGATAAGCGCACAGGTACTGCACCTCGCCATCATGTCGTACCGTGGTCATTCCTAGGCAGTCGGACACTGAGGTTTTGCACCATCGCTCACTGAAATTCTACACTCGTACTCACTCAGCGCTGTTCATGTCCGGCCCTTCTGCCCAATGTTATCAGGCCACCTGAAAACTGGCTCGACAAGGCATGATATTAGGGATAACGGCTGCGACAACGCATCGGAAGACACCCTTCCTATTTAAGTAAAGGACGGTCTCTGGCGTCATTGTAGTGGAGATAATCAACCAAGGACGTTCTATGTGTAGCACGCAATTGGGCCATACCAACCGAATATTAGGACAATGCTATGCTTTAGTTACCTAGGTACGCATCTGCCTCTGCTGGTTCGCCACCCAGCCATTTAGTTTGAGGCGTTCGGTGTTACACTATCACTCTACGACCGTCACTTGAGCTATTGGGCGTGTCATACTGAATCTTTATACCGACGGCTGTAAGTGTATGGATACATGATCCCGGGTTACAATTCGAACCTTCCATCGGCTTAGCGTTGATATTTGGCAGTATCTTGGATTTGACCAGGCGTCTCCCGTTTAGGGAGGTCGTATTTAAATTCCATTTGCAGTAAAGCTTATTGTAACTTTTGTACCGGGGTAAATAGAGGCGGGTGTCCGCGAAGACTTCCCAGTAAAGCTCCAATCCAACTATCCCGAAGGCGAGTTTGTCGGTACCTATTCGAGGCCGCGGTTTCCAACACGCAGTGACAACCTGGAATTTTCATATCGAACCGAGATGCTGAACAAGGTGCGTACTGGTGTACAGAACCTGCTCTTGCAGCACCCCCTCAGGACGCCGGTAAATCGTTATGGCTTCCTGCACACCCTAGGAGGTCAATCTTAAAGCCTTGCGAAGGTCATAGGAGGAGTGAGTTCGCCATATGGCGCCCCAAGGTAAGCGCCGAAGCCTGGCGTATAGTGACGATTGGCACAGAAATCCCTTGCAGTAGTGCCCGAAAGGTAACTGCGGTACGTGTTTAGACCATACGAAACGGATTTGTGGGGAGTCGCAATAATAGCCGGGAGCTTTCCATAAGGTCCTATACACGGCGAAGACGCAATTGGCTGATAGTCAAGGTTTAGTTCCTAATCAATTCATATGGCCGCTTGCGTATTACAAACCAGGTGCCCCAAGGAGTTCGCGGGCCGCACCCTCGGCCGTCATTCGGCATGTTGGGAAGGTCGTGGGAGGGTCGATCGGTCCTGCCGTAGCGTAGAATAGTACGAGAGTAATAGTGAGTCAGCACAAGGTTTCGCCGACTTGGACCCATACGGTAATGATTACCCCAGTATCGCAGACCAGGTCTGAATCCGAGGTTTCCAGTCAGCAACATTTAGGATGGGAAAGTGGAGTGTAACCATGTGGAACTGAGACTCTAGAAACATAGGCATGGTCAACGAAATCGGTATCGGGTTCACACCGCTTTACAAACGTGACCGAGGTATGCAGAGCCTGCTCTCGAACGGAAAGTACAAGTGTAAAGGTAGACTCACTGATGAGCTTCATTGGACGATCTCGTAATGTCAACGGTGGGTCAGGTGAGCTAGCAAATGCCGCAGGGGGTTCGCTGTCCGATTAACAATTTCCAATTGGTGCCAGATGTGTCCGCCTCAGTGTACCTCGAAAGCCCATTCTATTGTGAGGTAAGTTCCTATGTGTCGCTGCGGACTGAAGGAACCAAAAATAACCGGGGTTTCCCTGTACATTTCCTAACAGCGAGGTATGGTAAATCAGTATGTCGTGCATATGTGTCTGATTGGGACGTTATATTTCTGTACACTAGTTAATATCTCCACTTTCCCAGTCAACTATTCTCGCGTCACACTAACAGTGGAAGACCCCGATACAGGGCGGCGACGCGTCTTTAACACCTGTGATCGGGATTCGAAACTGGGCCAACACATAGCGCATAATGGTACAGTGTATGTTCATAGGTGCGCGCGTCGGTGTGCCGGAAGAGGATGCCTGGAGCCGCGACTAGGTAGAGCAGGTGCCGTTACAGCACACCCTGCTAAACTCGCTGTATTGCTCTTGAATAAAGCTAACGATACCTCATATTTCGAGTGGAGTTATGTATCCCTCCAAGTGATGTTCGCTCACGTACGGAACCCGGCCAGGGGCATATAGTCCTACCCCGACTCCATAATATTGACCGCAGTGCTGCTCTACTCGTGGATGCTTTAAACATGGGGTTATACCTTTCGCGGCTTGCTTTTTCCGAACTTGCACTCAACTGAATTACTATGAAAGGAACAGCTGACTCAATCATTAGAAGTGTGCTGTTATGGGTACGGTTACAGTCAACCTCATTTCATCTGTTCTATATACTGTGCGGGGGCCTGGCACAGCGGTCAAACAGCCCCTTATTTGCCGGGTACTGGTGTGTCGGGCGACTAAAGAAAAGCACCGATGATGGACATCTGTGTTTTTTGACTGCGGACTAGTTATGAGTTCAAGATTAATATGACCCGCATTATCAGCCGTGGCTTAGCGTCCTGGTTAGTGAAACACATTGCTAGCCATCCTCCGATTTTCACTCCGAATGTTTGAGGAGCGCTCTCGACTTAGGTCATGGATCCAAAACAGTCGATTGAAGCCTCGCACATTCAAGCATAACGATGGCATGTATTGATGATGCACTCTGACTATTCAACGCGCCGCTGATACCATCGTTAATTCAGTTAATTTAGATAGAATGTGTCGACGTCGACACCTCTATTTGCATGGTGGTGGGGTAGGTTAAAGATTTGCCAATGCCAGAAGCATCACCCACCCTGAAGCCTACTCGCGCACAGTTGTAATGGTATGCCCGATGACCTCCTATTCGTAATCTGAATCGAATCAAGTTCCAAGTTCGTGCTGGATAGTAGGAGGTCTGCAACGCTCCGCTCGGTTTTCAGGCGCTTTTCCGAATCCCTGAACTCCCCGACAGTCGATGCGTAATTATCGTCCTTTCTCATCTCAAGAGTATTGCTAATCCTGAAATTCGTTACTTGTTCTTCTGCTCGTTCCTCGATTCGCTTCGACGTTGATGGTCGTCATGGTCACTGGAATGGGTGGGACTGCATTATTCGGGTACATTAGAGTCGCAGTAGCTAACGAGATGCATTGAGAGCTATACAGGCCAGTGGACGTCTCCCTGCCGTGTCCATAGTATGACGATCAATGGTGGGCGCTACACTTGGCCCTTACTCCGTCCGCGACATACTTACTGGGTCTTACTTCACCTTTTGCTGTTTGTATCAGCACTGTCAGAGGAAAGCACGAACCACCAGTCGGCGTGTGCACGAGTTTCCAACTACTAACCATGTGCCGGATAAAGATTCAATTGAGCGCCTAGCCCCATCATAGTCCCCGAGTATACCCATAGTTAGCGTTATGTTCATGAGTGGTGTGAATATCGTTGCGTTTTTGCGTGGAGTTGCGGATAGCCCCACATAAGATGTGTTCTTTTTTCGCCTAGGCCCGATCGTTCTGCGTGGGTAGAATTTGCTTAAACGGACGCTGAGGACACATATTGCGAAATGAGTCCAGGTATGCGCGTCTGGGTGCCACTACAAGGTACGTTCTATTAGTACGCACTTAGGCTTCTCAATCAAGGGTAACGTGCTTATGCTAGACGGCGGTAGGCTTACCTAGACTCCCACGTCTACAAATGGTAGAATGAAGCGGCCGGATAGTAGGCATAGGCGGAGCGCGTATTCTGTAATTCGCACATTAGATCCCCGACACTGTTAACGTCGTGTAACGGTCAAGGGGTTGATTACCGATCATCGTCGTTTGAACGCAGCTTAGTCACGAGAACGCGTCCCTCACGTACTAAGGATAGACTTCGCTGGAGCTGGCTGATACAAGAGAATTAGCCCTTCCTTGTGATAGGTACAT"
     expected_result = "3 5 10 17 18 26 27 29 30 31 33 34 43 44 48 50 52 54 60 61 62 63 66 67 72 74 75 78 81 83 86 92 94 98 99 104 105 108 111 112 116 122 125 126 131 135 136 139 146 147 153 154 158 160 162 166 169 171 172 176 182 184 186 190 193 194 197 206 209 214 217 220 223 229 232 234 236 240 242 243 248 249 251 254 255 262 265 271 273 275 277 281 286 287 289 290 293 294 298 302 305 307 311 315 316 317 320 321 325 331 332 338 339 341 343 346 347 348 354 362 363 364 370 371 372 374 376 378 379 383 387 389 391 394 395 398 403 406 407 408 418 421 425 426 428 430 432 434 436 438 440 443 444 448 451 452 455 459 460 462 466 468 472 482 486 490 494 497 500 503 509 512 513 516 517 522 525 526 527 532 535 537 539 543 545 546 549 551 558 560 563 566 567 570 572 578 584 586 599 605 609 615 618 622 623 627 629 630 633 636 638 642 643 644 648 652 655 657 659 666 668 670 672 673 674 681 683 685 688 689 692 696 703 705 707 711 716 719 724 725 726 729 734 735 739 743 749 755 759 761 764 765 767 768 771 773 775 777 780 781 782 784 788 789 794 796 798 800 803 804 805 808 810 812 816 818 820 822 825 829 835 836 843 851 852 854 855 860 862 866 870 872 873 879 883 884 888 894 897 898 899 905 913 914 921 922 928 933 937 941 946 947 952 956 958 959 962 964 965 968 971 976 978 982 983 984 987 998 999 1002 1004 1005 1008 1009 1013 1014 1023 1029 1032 1033 1034 1038 1042 1044 1048 1050 1054 1058 1061 1063 1067 1075 1076 1083 1084 1090 1092 1096 1097 1102 1108 1112 1117 1120 1122 1124 1126 1130 1131 1136 1139 1141 1143 1145 1150 1152 1157 1160 1161 1162 1168 1170 1172 1175 1176 1188 1189 1197 1200 1205 1206 1212 1214 1215 1218 1220 1224 1228 1233 1235 1241 1246 1247 1250 1253 1254 1258 1260 1264 1266 1268 1270 1274 1277 1283 1286 1287 1291 1295 1296 1301 1304 1310 1312 1318 1319 1320 1324 1325 1326 1328 1332 1335 1337 1341 1342 1343 1350 1351 1355 1360 1361 1366 1370 1374 1379 1381 1385 1387 1390 1391 1397 1398 1404 1405 1406 1410 1411 1417 1418 1427 1429 1431 1435 1437 1439 1443 1448 1455 1459 1463 1467 1471 1478 1482 1487 1489 1499 1503 1505 1506 1509 1514 1515 1516 1519 1523 1527 1528 1530 1536 1537 1539 1543 1544 1547 1549 1553 1555 1557 1558 1560 1564 1566 1567 1572 1575 1585 1587 1591 1597 1598 1606 1607 1612 1618 1619 1621 1622 1624 1631 1633 1637 1639 1640 1641 1645 1646 1651 1653 1655 1661 1662 1663 1670 1671 1674 1680 1681 1685 1690 1695 1696 1700 1704 1705 1706 1710 1712 1713 1717 1721 1723 1726 1733 1734 1738 1746 1749 1751 1753 1755 1759 1761 1765 1766 1769 1770 1775 1776 1777 1780 1781 1784 1786 1792 1796 1800 1804 1805 1809 1814 1815 1816 1820 1825 1826 1827 1832 1837 1842 1847 1851 1857 1858 1859 1862 1866 1870 1871 1875 1876 1877 1880 1886 1888 1892 1896 1897 1898 1899 1904 1905 1914 1915 1918 1921 1922 1926 1927 1929 1931 1935 1938 1945 1946 1949 1952 1956 1961 1966 1967 1969 1973 1977 1979 1982 1983 1984 1990 1994 1995 2000 2001 2002 2004 2007 2008 2012 2017 2019 2021 2026 2027 2031 2035 2041 2045 2048 2050 2052 2054 2061 2070 2072 2074 2076 2078 2082 2083 2084 2085 2088 2092 2095 2096 2102 2103 2108 2110 2114 2116 2118 2122 2128 2131 2132 2134 2137 2139 2144 2149 2150 2153 2154 2158 2161 2166 2168 2170 2174 2178 2180 2181 2184 2190 2194 2196 2198 2202 2206 2208 2209 2212 2214 2218 2222 2225 2231 2232 2234 2236 2240 2243 2244 2246 2249 2257 2259 2261 2262 2265 2269 2271 2274 2275 2279 2283 2285 2289 2291 2297 2306 2310 2311 2312 2314 2318 2319 2321 2325 2329 2330 2333 2339 2342 2351 2352 2353 2357 2358 2359 2360 2364 2368 2369 2373 2377 2379 2380 2383 2385 2388 2392 2396 2397 2401 2407 2408 2414 2418 2419 2420 2422 2426 2427 2431 2435 2437 2438 2441 2456 2457 2460 2462 2466 2474 2478 2481 2482 2488 2492 2496 2498 2502 2512 2513 2516 2517 2522 2526 2530 2531 2534 2535 2539 2546 2547 2551 2554 2555 2556 2561 2565 2567 2573 2579 2582 2584 2586 2588 2593 2597 2598 2600 2601 2602 2612 2613 2619 2622 2626 2630 2632 2634 2641 2647 2648 2649 2650 2654 2656 2657 2660 2662 2664 2666 2668 2672 2674 2675 2679 2680 2684 2685 2688 2689 2692 2698 2705 2706 2712 2715 2716 2722 2727 2728 2732 2734 2738 2743 2747 2749 2751 2755 2758 2762 2763 2772 2776 2777 2778 2781 2782 2784 2790 2793 2797 2801 2802 2805 2810 2811 2814 2815 2817 2831 2833 2837 2844 2846 2847 2848 2850 2851 2856 2857 2859 2863 2868 2870 2877 2879 2883 2884 2887 2889 2894 2895 2901 2904 2908 2909 2913 2915 2917 2921 2923 2934 2935 2936 2940 2945 2946 2952 2956 2958 2962 2964 2965 2968 2976 2977 2978 2983 2985 2988 2992 2995 2997 2998 3003 3008 3012 3016 3018 3024 3027 3029 3035 3038 3044 3047 3048 3054 3055 3058 3066 3070 3072 3073 3074 3078 3082 3085 3087 3088 3095 3096 3101 3102 3105 3106 3108 3112 3116 3120 3128 3132 3138 3142 3143 3151 3152 3157 3158 3159 3165 3166 3167 3171 3173 3174 3178 3181 3182 3184 3189 3191 3192 3194 3195 3196 3203 3204 3205 3212 3215 3220 3222 3228 3230 3232 3234 3237 3241 3245 3249 3250 3254 3255 3258 3259 3267 3268 3274 3277 3279 3281 3282 3283 3285 3288 3295 3296 3299 3300 3302 3306 3308 3309 3311 3315 3322 3324 3326 3330 3333 3335 3343 3344 3349 3351 3353 3356 3358 3362 3366 3370 3372 3374 3378 3387 3390 3395 3401 3403 3407 3411 3415 3417 3419 3420 3424 3427 3433 3440 3444 3447 3448 3449 3456 3458 3463 3465 3468 3470 3472 3475 3477 3478 3481 3483 3485 3489 3493 3495 3497 3501 3503 3505 3507 3509 3515 3516 3522 3523 3524 3530 3533 3534 3537 3538 3544 3546 3553 3555 3557 3564 3565 3567 3568 3572 3574 3580 3586 3595 3601 3604 3605 3606 3608 3612 3616 3617 3623 3628 3629 3633 3634 3640 3641 3645 3649 3655 3656 3657 3661 3665 3667 3671 3673 3679 3681 3685 3691 3692 3696 3697 3702 3704 3708 3718 3719 3720 3723 3724 3727 3731 3735 3744 3750 3751 3752 3755 3759 3761 3765 3768 3772 3774 3775 3779 3781 3785 3788 3792 3796 3798 3799 3801 3804 3808 3812 3818 3820 3825 3826 3829 3831 3835 3838 3840 3841 3851 3852 3855 3859 3863 3865 3867 3873 3877 3879 3889 3890 3892 3893 3899 3900 3904 3912 3915 3916 3917 3923 3926 3928 3929 3932 3933 3935 3937 3944 3947 3953 3954 3958 3959 3964 3971 3973 3979 3980 3986 3988 3992 3994 3996 3997 4001 4006 4009 4010 4016 4019 4020 4021 4024 4029 4033 4035 4037 4040 4044 4048 4049 4051 4053 4055 4062 4063 4067 4070 4073 4082 4083 4086 4088 4096 4097 4098 4100 4102 4104 4108 4109 4111 4115 4117 4121 4124 4128 4130 4131 4132 4137 4138 4139 4142 4143 4149 4150 4153 4155 4161 4162 4163 4167 4169 4171 4174 4178 4181 4185 4188 4194 4195 4197 4198 4204 4206 4208 4209 4216 4219 4220 4226 4228 4232 4236 4237 4240 4241 4247 4248 4251 4252 4256 4259 4260 4268 4269 4273 4274 4276 4277 4281 4282 4285 4288 4289 4290 4295 4296 4298 4300 4303 4304 4310 4311 4317 4321 4323 4324 4325 4327 4329 4333 4334 4339 4341 4349 4350 4354 4357 4363 4365 4376 4377 4378 4384 4388 4392 4394 4398 4401 4402 4403 4407 4408 4410 4412 4413 4414 4415 4416 4418 4422 4424 4425 4429 4431 4433 4436 4440 4442 4444 4446 4448 4452 4453 4458 4459 4462 4464 4466 4473 4475 4483 4485 4489 4493 4494 4498 4500 4502 4504 4506 4509 4510 4512 4521 4525 4526 4530 4531 4536 4537 4538 4544 4548 4550 4558 4561 4568 4569 4572 4578 4579 4582 4583 4590 4593 4594 4595 4599 4600 4604 4607 4608 4611 4614 4620 4623 4624 4630 4631 4635 4637 4640 4643 4644 4653 4654 4656 4660 4662 4664 4669 4674 4676 4680 4687 4688 4692 4700 4704 4705 4708 4709 4712 4716 4718 4722 4726 4734 4735 4736 4738 4739 4740 4742 4744 4745 4751 4753 4754 4755 4761 4766 4767 4771 4777 4779 4781 4785 4786 4790 4792 4794 4798 4801 4803 4805 4807 4809 4812 4820 4821 4824 4825 4827 4829 4831 4835 4840 4843 4844 4845 4847 4851 4853 4857 4864 4865 4869 4878 4880 4886 4891 4892 4894 4897 4898 4900 4904 4910 4915 4917 4919 4920 4921 4926 4928 4939 4941 4943 4947 4948 4954 4955 4957 4959 4961 4963 4966 4968 4969 4976 4981 4983 4987 4991 4995 4999 5003 5007 5009 5015 5018 5021 5022 5029 5032 5035 5038 5042 5045 5047 5051 5052 5057 5062 5072 5077 5081 5083 5088 5092 5094 5096 5098 5101 5102 5106 5108 5111 5113 5115 5119 5124 5125 5126 5128 5130 5132 5134 5136 5140 5146 5147 5151 5152 5155 5157 5161 5165 5166 5172 5178 5180 5182 5184 5186 5187 5188 5190 5199 5204 5208 5210 5218 5221 5224 5226 5232 5235 5236 5239 5241 5243 5249 5251 5252 5253 5255 5265 5268 5269 5272 5280 5284 5286 5290 5294 5295 5299 5300 5306 5310 5311 5317 5320 5321 5324 5329 5333 5335 5336 5337 5343 5347 5349 5353 5354 5355 5359 5360 5361 5362 5365 5366 5370 5378 5379 5381 5383 5385 5390 5396 5397 5403 5410 5411 5412 5414 5419 5420 5424 5428 5434 5435 5441 5449 5450 5451 5454 5458 5459 5460 5462 5464 5465 5469 5473 5475 5477 5479 5481 5483 5485 5486 5498 5499 5501 5505 5511 5512 5514 5517 5518 5520 5526 5529 5532 5535 5543 5544 5546 5552 5553 5559 5560 5563 5564 5566 5568 5572 5576 5578 5580 5592 5601 5605 5606 5612 5615 5621 5625 5628 5629 5632 5634 5635 5636 5638 5641 5646 5647 5650 5654 5657 5661 5665 5669 5671 5672 5675 5680 5682 5684 5686 5688 5691 5695 5697 5704 5708 5715 5720 5724 5725 5728 5732 5733 5736 5737 5738 5741 5742 5747 5751 5754 5758 5760 5762 5766 5768 5770 5774 5776 5780 5786 5787 5790 5793 5795 5799 5800 5802 5804 5806 5808 5810 5815 5817 5821 5823 5824 5830 5838 5840 5841 5842 5848 5850 5856 5858 5862 5864 5868 5869 5874 5875 5878 5883 5887 5888 5892 5897 5900 5902 5903 5906 5907 5913 5914 5917 5920 5922 5923 5924 5927 5928 5930 5931 5934 5936 5939 5943 5944 5949 5953 5955 5961 5973 5979 5982 5987 5992 5996 5998 5999 6000 6004 6005 6008 6009 6015 6021 6026 6027 6028 6033 6034 6041 6042 6045 6046 6049 6050 6056 6064 6065 6068 6069 6072 6076 6078 6081 6084 6088 6094 6095 6097 6103 6104 6105 6109 6111 6117 6120 6123 6126 6136 6141 6145 6147 6152 6153 6156 6160 6164 6166 6170 6172 6174 6176 6178 6183 6184 6188 6190 6194 6196 6207 6214 6215 6218 6221 6222 6229 6232 6233 6236 6238 6244 6245 6249 6252 6256 6261 6263 6265 6269 6275 6276 6279 6282 6284 6294 6296 6298 6300 6301 6304 6306 6307 6310 6312 6316 6317 6318 6322 6323 6326 6327 6329 6330 6339 6343 6345 6349 6352 6353 6359 6363 6364 6366 6370 6373 6375 6376 6377 6379 6383 6384 6385 6393 6394 6401 6404 6411 6412 6417 6419 6421 6423 6425 6427 6431 6435 6437 6441 6450 6452 6454 6456 6459 6460 6464 6468 6472 6476 6478 6482 6484 6486 6488 6492 6494 6498 6499 6503 6505 6507 6508 6524 6525 6528 6529 6532 6535 6539 6543 6544 6546 6549 6550 6553 6554 6560 6561 6564 6569 6570 6571 6573 6575 6581 6585 6589 6595 6599 6609 6610 6612 6615 6622 6626 6627 6635 6639 6643 6647 6648 6651 6660 6661 6662 6663 6667 6669 6676 6682 6686 6690 6692 6696 6700 6702 6704 6708 6710 6712 6719 6720 6723 6726 6730 6733 6735 6736 6737 6740 6742 6744 6750 6753 6755 6757 6759 6766 6771 6773 6778 6782 6787 6789 6794 6795 6796 6799 6800 6803 6805 6806 6810 6811 6816 6817 6819 6820 6824 6829 6832 6835 6836 6840 6843 6847 6848 6851 6856 6860 6862 6868 6873 6877 6884 6885 6886 6888 6892 6896 6898 6899 6902 6905 6909 6915 6916 6918 6920 6923 6926 6927 6934 6936 6940"
     self.assertEqual(
         expected_result, " ".join(
             map(str,
                 find_approximate_pattern_matches("AGGTACAT", genome, 5))))
 def test_sample_1(self):
     self.assertEqual(
         "6 7 26 27", " ".join(
             map(
                 str,
                 find_approximate_pattern_matches(
                     "ATTCTGGA",
                     "CGCCCGAATCCAGAACGCATTCCCATATTTCGGGACCACTGGCCTCCACGGTACGGACGTCAATCAAAT",
                     3))))
 def test_sample_1(self):
     self.assertEqual("6 7 26 27", " ".join(map(str, find_approximate_pattern_matches("ATTCTGGA", "CGCCCGAATCCAGAACGCATTCCCATATTTCGGGACCACTGGCCTCCACGGTACGGACGTCAATCAAAT", 3))))
 def test_simple(self):
     self.assertEqual("6", " ".join(map(str, find_approximate_pattern_matches("ATTCTGGA", "CGCCCGAATCCAGA", 3))))
 def test_submittal(self):
     genome = "TGCACTCATCGGAGTTCCTTGGATGTACTAACGTTGGCGTACGAGAGTTAGTGAGAATTCTATGCGATCCCGATGGACCAATAGCATCACCTTCTTTTGACGGGACGTCCGGTTCACAGGCTGTGGTCTGTACGGTCTAAAGTGCTAAATATAAAATGTGATGAGTGACTTTGGATTCCTTACGGTCGCTCTTGGTGAGGCAAGGCTGTAAGTGCAGTGACCTGGGCACTAACCGAAGCTTACGCAACGGGGCTTCAAATTAAAGACTTTAGGCAGCTGCTTTGTTAGCACAGTGCTCACGAAGGACGTGACGCCGGCATATCGATCCAACCACCCATGCGGAGCTTGGTCCTATAGTTTATATGGTGAAAAATAACGAAACCCCAAGATTAAAGCGTAGAATGAATCTTAGCCACCTTACCTGCGATTTAAAACACCCGTAGTGCGTCGGCACCTCCACAGGAATCCAGCTAGGCGTAAAACACAGGTAGGCCGGGTCAGTTCAGAAAGAGTGGCCACTAACCCCTTTTTGTAGATCAAATTTTGAGTCGTAAGAGCCGTGGATTCTAAACCTAGCGGGACTGATGATCTCTCAATTCTCTAATAAAGTGCAAGAATACTCAATGTGGTAGACTGCTATGCGGAGCCTATGTGATGACACAATCCTGCGCCGCATGGAACGATTAAAACCGACGCCGGTTTGGGAGAAGGCCTTCATTTACTACCCAAACTATTTTTAAACGGTCCATATGCCATCTTCTCCTAGTGTTCACTGATTACAAAAGAGGTCGAGAGATGGGAGGTTAGCACGAGCATTTTTCCCGGCCGTGGTCCTGGTTATAGTGAGTGTCGCATGTCTTATTGGATCTAAGAGCACGAAATTCTCCCAATGGTAGAGAGTTATGTTTCGTACGAGCAGTGTGCAAACATAGTTAGCGCTTAGTGACTCGGACGACGCGAGACAGTGGCTACAGACGAGGTCGCAAGCGTTTCATCCTCCAACAGCGTCTGCGCGCGAATTGAGCTACGCTCGCTCTCCTAACAAGAGGTGTATCCGATTGCTCCGGCTCCGAGTCCGAAACATCAAAAGGTAATGGGCGGGCCGACAGGTTTGCAACGTCACAAGGAAGTTAAACCTCCTGGCAGCGCAGGGCAGCCTCAGTAGCAACTAGGCTGAAATATTCCCTAGCTCAAGAAGAGATCGGCGATAGATCTCATATATTTAGCCAGTTCTATCCTAGAGGAGATGCGATCCTCACAGGCCAGAGGTATGTTACCGCCCCCTCACAATCCTAACCCCTTCTCATACCGCATGCGTGACCGTGGATCTAAGCCCTTAAAGCTGCCAACACTCTTAGTGCGACGGCCCTCCGTAAATGTAAGTCCATCTCTGTGGTAGCTTAATACAGGGTCAGAGTGACTCACTGGTGGTAGTACACCGTAACACAGGACTTATGGTACGACTAATTACGTAAAATAACCTCTAAATTCTGGAATTCGATCGACCGTAATCCTGCCCCGTTGTCTGTAGACCGGACACCAAGAGGTGCCCCTTGTCCTACTCTGATAAACAACTGATGCCCATTAACAGCCTGGCAGGGGGTTGTATCGCTTCTTGTGTAGTTCCATTCCAGCTGCCCTGGGAACCACCGCTCGAGCAGGGATCTTCGGAGTCTTTAGCTTTACTATGAATATCGTCCATAGACAAGATAGGTTATCCGCGAATAAGCTGCCATAGTAAGTAATTCAAATCTCTCGGTTGCATCTTGCATTACTTGAGCGGTGTGGCATTTCGTCACGGCCGGGCTGCGGGGTGCGGTTTGTCCCGTCGCGATAGCGACTTATACGGACATGCGCATTGCCCATCAAGTGCACGGCTCGAGAATCCATCTAATGTGATTTTTCCGTCTGAAGTGTCGCTTGAGTACGGGTGTAAGGGACGGAACTTCCCGCTTGGGTTTGGCAACCGTAAAAAATACGATGTATACAGTCCAAGTATACTGTCGGGACAAAGTTCGAGAACCACATTAACGCGCGGTGGTCGAGAGAAAATTGTTGAGCTCGCTGCCGAGAATTAAGCGATCTGTCTGAAGCGCAATCTTCCCACGCCCTAAATCCAGAGAAGTACTACCCAACTTGTCCCTCGCGAGCCCCTTTGTTATATCACAACCCAAATCTCCCGGTCAGAAGATTTTTTCGGATCACTGCAACGGCAGTCGCTTGCCAAAGCCTTTGATGAGGCGGGGGTAACTGACGTTAAGAGAACTTTCGGACAGGGCTGTAGTGTAATAAGGCACCAGTCGCTGATAGGCTGTGTGAGACATCGCGCTTTTCCGAGTGGCGATATACATTCTCCTGCAGCCGCCTGGGCATTTCCTCTCACTACTGACCACACCAACATTCTGTCACAGTTAAGAGGGCTGGCGGTTTGTCTCTAGTTATAGCCTCACGATGTCACACGAAGGTTAGCATAGGAAGAAGAAGGCCGGTATCCGGAGAATTTGAGTTGGCAAAGCCCGTTGTACCCAAGAGACCTTGATCAAACTAACATCGGCGGCTATTGTATCGATAGACTAACGGAACTGGTCTAATCGGTGTGACGTACCTTTGATGTGATCCAAAGCATGATGGGTCGCCGTGGCAGGTAAGCCTTGACTGGATCTTTAGACAGTAGGACCTACGGGGACTGCAAGCGATACATTTGTGTGAAAATCAGGGCGAGGATTACCCGTCGCATTCATTCCACCTTTTGATGGTTCTCGAGCTGGGATGAGACAACTACCGTTGGGTGTTGGCACGAGTATTGTGTGTGGTGGTATCAAAATGCGAACATACATGCGCCAGGCGCTTTAGGAGGGAGAGACGACATATCTCCGATTCATAGTGCTTTTCATTAGATTAGACCCCCGCCGCGATCGATAGGTCGTTTCGCGGTTTCTGATGCTAAAGAAGGGTACATACACTCGGTTGAAGTACCCCTTCACAACCCGAGGATTGCGAGTATGTACAGTTCCTGCCTTCATCAACGACTCCCCGGCATTCCTCGCCAAACGTATATAAGGACAACAAGTAAGACCACCCCCCTGTGATCTAGGACATTCCCGTCAGTCTAACCCCTCCGCCCTGGCGCATGTCATAGCTTTCGCGTATCACCAAATAGCTGTCTGCTCTGTAAAACTGCCACAAAGACATGATCCAGGTAGTTAGGTTTGAAGTCCCGCTAAAAACGCCAGTTACCACTTATTCTTGCTGCAACCTCAGCCACCTCTATTGTTCAATATTAACCAACTTGCGCTTTAGGCCTAAAGTTGACCTGAAGTAGTGTGTGCCGAACTAGTCAATGTAACCTCCGTAGACAGACCAGTACGGCGCCTGGTTTTACTAACTTAGGTATGCGCTAACGAGCTAGCATGCACTGAATATCGGTACATGCAGCTCCAATACAAGCTCGCCGCAATATGTGTAGAGGAGATTCTGGACAATTACGTGACCTGGTTCCCATCCGAATCGGTTTCGCTTTATCGCCGTTAACAGCGCGTCTGGCTCCCCAGTGCACCTTGAGTTTGGAATCTATGTGAATCGCCACACATACTAAATCCACCCATGATATTAGTTGGTCGGAACTGGGGTGAGTGAGATGAAGGACTTCCAGTCAACAATATGGAAATCGGACGGAGAGAATGCGTCCCCCAAAAAAATAGGGGCGTCACGGTCATCAGAAAACGTCTTGTCGGAAGGTGAGACTGTTGGATAGACGTAATCTGGATACAGCCAGTAGATTTCCAGAGATCACGAACGTATTGAAAGTAACGTTTTTCGCCCTACGGCAATCAACTTATGCCTACCGACGTTTGGCGGGTCCTTCTCCGCCGCAGACGGGTCGAGCATAGACTCGCCCTCGCCAACTCGTAGCAGGTTGATTCAGCAGACGATCGTTTTTTCGATAGAAACGAGTCTTATACCCCTCTTCTTGACCATGGAACAATTTAACCTCAGAACTTCTATTGCTGCAGGAATAGGGCCACATAACGTTGAGGCCGTGTAATCTCGGCGACAAATTATATTGTGAATTGCCCTGCTGTTAGCACCCCTGTATGCGGCCAGAGTTAGTCGCGCTCGTGAGAGACGCGGTTGACGCCCGCGAGTTTCGGTCAACTACTGACAACGTCAGCCTGATTAAAACGACAGATGGCCGATGGTGCCAAATAGCTTCGTCGCAGCCCCTAACGCGGCGAGTTTGTATTTAATATATAACGTAGTATTCCGAATTCCTCTAGGGCGTTAATCAATAGGGGAACGGCACGGTGTCTTTAGCATGGATGTGGCGGCTGACGAATGCAATCTCTATCGGGGCAAGCTTGCTACCAGAGGGTTCTCATCGTTTTGATCGATAGAATCATGGAAGATCTCTGCCTATGAGTCCTGAGCACCGAGGCCTTGCTGTCCCACAATATCAATTACCCACCGTCAGCCCCGGGTACTCTAGTTTTCGACAGGTGCCGAGATTCAAACATTGTAATTCGAAAGGACGCAGCCGGCCCCCGGGCTGCCAGAGAAGGATTTTCACATAAGTCCCGGTGCCTATTATGTCCAGACACTACATCACACCCACGATCTACCAGCTCCAATCTTCCCACATGGAGGGGGAGCCATGGCTTTGCACTGTGCTCCCATTCAAAAGTTGGAAGGTATCGCAGACGAAGCGCGCCGTCTGACACCGCTGTAATTGTAAATGAGAGGGAGGCCACCGTGTAGACCCGTGGTATTCTAGCACCCCGTCCATTTACAGGTCTTGACAATTACCATCGCTGACTAGGTTTAAAATTCATTAAGAGTTGTCCGGGTAGGTGGGGTGCGGACAGTTCCCCCCAGGTAATTGTCGTGCGGCTTCGGGCAAACAGATACAGATACCACGATTCACCGCGCTCAGTGTTTGCTGCCGTAAGGAGAGCCTATTGCCGTTCAACGGTCGAAGTAACTATAAAACCCATTTGGCAGACGTGTTGCACTTTCTCTGAGCCGGCTCTGCATCTGGTACTACTGTATCTCATCCTATGTTGCGCTTGGACGCGGTTCCATAGAAGGCATACATTCTAGATCTCGCAGGGCCGAATGTGGAGGGGTGATTGCCTTGCCAGGTTTTCACTCGATATCAGCCGCACACACTCTCACCTTTGAGCATCATGCTTTGTCAGCCTTGGGCACTGCGCATCTAACAGCAAAGCCTATGCGAGTTCAGTATCTAAATCAACGCCGCGATCGGGTACTGTCCTACGTTCCACGCCCCTGCGGTTACTGTCAGTCCAACGGTTGCAGCACACGTGTCCTAGCATCGGGTGGGGAGAGAATAGGCCACTCGTACGATTCATATAATAGCTTGGAGCTACCAGAGGCTGCGCTTGTTATGCGCAGCGCGAATATTCGCGAATTTACTGTCAAGGCGCGTCTTATACTAAGTTACGTCCTCTGCCTTGCGACGATCCCACGCAATACAGTAGGTTGTAGAGCCACCCGACATTGACCGCGAGCTGAAGGGCGATGACAGGGTCTGTCATCCCCTGTTTCTTGAGGGCAAGATGTTAACTAAGGCACAACGCAGGAGGGTTATAGCCATCACCTTCGGCTTGTCCAATCATGTTCTTTACTTCCCGAGACGAACTCGTCACCTTGCGATCATCATGGCTATGGTTGGCTCTAGTACTCGATAGCCTGTGAGGGTTCTTAAGTTTTTGAACCGACCCTAAGAACTCTAGGTTTTAATAGGCCGGTTGATAGTACGCCTACCGCCAGTGCAAACTTTCCTCAAACAAGTCGCACGGTCGACCGGCTGGTCACTACTTTGGCGGTATATTTCTGCCACCAGCCCAGGTCTATTATCCTCCAATCAACGTGATCAACGGCGGCATCACGGGAAACCCATTAACATTCTCACCACTCCTAACCGGGCCTGTTCGCCCTGTATTACGGGCACGCGCTGTGGCGCCCGCAAAGGTTACCGTAGTCTCTCCAAAGCCCATGGTACTGGAGGCAAAGACGACTCCTTAATATTGGCTGAGAGCGCGCGCCCGCACCAAGTAGTTAGGTTAGACACTGGTGTCGCACCATTGGAAGAACGGCATGGGAAGACGTTGGTACCGTTAAATCAACCCGGGTCTGCCAAGGAGCGCAACTACGAGGCGGATTCAGAACAGAACATCTTAGATTCACATGAAGAAATGGATAGGCTCGCTCACGACCAATTTAAAGTCCGAACCGAGTACGGGCAGGCTGTCCTTAATTCCGATCTCTGATGCCCAAAAAGGAGTTGTCTATTATAGAGCAACAAATTGCTACTAGTATAGTGTTCAAATCTCCGAATTCGTAACGACACGTTGTCCGACCTCTGTAATCATCCCAGCGACGAATTAGATTCAAGGCCGCCATACCGGGAGTAGTGAGAAGGTTCGCTTACGACGTACGCGTCTGGAACACGGTCCGTCAAATTTATCTGCCATATCGTCAGTATGCTGACGCGCGATTATGCGAATACGTGATCTGCAGTGTTAACTTCCGTGGTACCTACGAGGGCATGGGGTTAATGCTCCGCTGGTACCAGTCGCTGCAAGAGTGCTTAACTCTCTAAAGAACCAGCGTGCAACTTCGCGTTTACTAGCTCTCATGTCAGGGAGAGATAACCTCCTGGGAAGTCGTCGTTGTCTGCACGTGTATTTCAATAGGATGCCCATGCCTTACCACTGATGTTGTGTTTCGAACGCACCTAGGCAGGTCGATTCCGTGCGAACTCTGAGACGTAATATAGGCCGCCGGGTCGCTCGTATCTACGTACGCGGCGAGGCGCAAGAGCATGGATAACGGCGCCGTACAACGTCTAGCTATAGCTAATTGGACTTAGCTAGGCTCGGGCACATTTGCGCTTACGAGGACGTCACAGATTCGCTGACTGTCAGCCCTGACCAAGGAAGCATTCACGTCAGAGGGGACTGAATTAGGGGTGATACAACATTAGGAGCTCCGTTTGACCGTAGTGGGAGAAATGGAAGGAAAGGCATTCCGTCCGCTTCATTCGTGCGTGTTCCTATATAGCTCAAGCTCGTCTAATGCCGGACTGTGCCTCTTAGGTACGCCGCAGTTCGCATACACATCCGTTAAATTTGGAGAAACGGCATTTCCCGGTCCCAGCGGGCTAGGAGCAGAGACAGTTTTCCCAGGGGCAGCTCACTAAGGGAGATGTCCTACGAATTCTGAAGGGCAATATCTGTGGCAGAAGTTGAGCTAACACAGGGCCTACACCCATTTCATAAGGTAAAAAGCTTCTTAGTGACTTTACTCCTGCTAAAATCGTGAATATACCTACCGTCCTTTAATTCCTTAGGATGGATCGTACCGCCGCGACTTGGTGAGTTTGAATTACAGGGAGGTTGCAATCCTTAAGGCCGCCACATCGTTCATCCACTACTGAGATGTACAGTCAGAAACGATCACATAAATAAAGTCGCATATGTCGAACGTCACGGCGACGACAGGTGTTATGCGCTGCCCTCGTACCTACTCCTCCGTACTCTTCGCACGGTGGTGTAAGAGGTAAGGGGATCCCTCTGCGTTATAGGAAGGTTATACTGCTTGTTACTAATCAAGATGACGAACTACGTGTAATGAAGCTCCTGGGCTTAGATTGCGTCCCCGAGTTGGGGGAGATAACAACATCATTATCGAACTGGGGCGAAAATCAGCACGGGGAGCGGGAGAAGAATCCCAATGACGCCCACTTCCGTGGGATAGAGTTTCGTATTGATGAGATGATTATAGGTTCTCAGTGTCTCATAGTCACGATCTGACACCAATTGAGCAGGGCCCTAGTACGACGTCGCCTGCAGGACATCTGTACTCGTTCAAACTATCGTCCTACACCTCAAGGAGTCGACTTAACATCAGCTCCGCGTTTTTATTCATCCTGCATCGCCTGGTTCAGTGTAAAGTGCCTACTAGCCAACGCGGTAAACCGTCGCACTGCATTCCGTCGATACAGCTACGTGCGCGCACAGTGAATCTGACATCTGCAAAATCCCGTCAACGATCTGTAAATTCTATTGAGACTGATTCCTGAGGGTGGTGCGAGGAATCTTGCCATCTTGCTCGAGCATGCAGAGGCCCAATCCCGTGTGGGCTGGTGTACACCAAACGGAACCCAGCAACGCGTGTCGACTCAATAATACTACAGCCTATTCTACTACATGTCATTTCCGCTTATGTAGTCGATCGCCATCGTCGTTCACGTTGAACGCAAGCATTGCGTTTCAGGGAGGCTCGTTAAACTCCCAACTCGCCCGTAGGCCATTACGAGTCAACGCAACAGAAACGTAACGTAAGATTTCCACATAGTGTCAGCATTTGTACCAACAGTGTTGCTAAATGATTCGAGCATATCTCAGGTGACCTCTCCACGTTCTGATGGTCAGTGAACAGGCCTCGATATAGAAGCAGCCCACTTAAGCAGATCATTATTCTTGATCAACTTGTTAATCAACCTCGTCGGGAGTCGACCGGAGGGGTCATCTACATACTCGTACCTGAGGGGTGAAATGGTAGGCAAGAAAAGGCCGCGATAGCAACAATATGCACGGTCCCGGGAGATGTTATTTCCATTCAAACAGAGCAATAGTCGAAAGCGCTCCCAACATAGTGACAATGGTAACGCGTCTAATCGTTTCAACCTAACTTACATCTCACACGACGAATCGCTTGTTGGTAGCCTTGCAGTTGGAAGTTCCACCAACCGCGACCTCATGGAGGCGTTGGTCGATCTATGACCCTCATCGTGAATACTGCGTCGAGATAGGAGAGACCGAACAGCTGACAGCACATATGAGTTGTCATGACCGACGTGATTGCGTAATTAAAACGGCCAGAAATCTCTATCTAGCTAATCTGGCCGTCCTGAGCGACGCTCTCACAAATAAACACGCGCAACTGCATGTATTCTGTTTTTATCCTGGCCTAACCGCTAACGATGGCGTTTGCGAGGGCCAACGTGTCACATACATTTCTAACCCCTTGGAGTACCCACCTCGATGCACGATCCCTGGTGAGCATTGCGCCTCCAGAAGGCTGGCGGCAGCTACGGTTTCTTGTTGCTACGCACTCTTACTGAGCAGTCGTGGTGCCAGAACACATGTTCATGACAGTCGCGCTCTTCCACGTAGTACACAAGAGTAGGTGAATACCTAGAGTTCCCCAGGAGCCTCCCTCGTATCCCGATTTAACCCGATAGGGTCGTGCTCTAAATGGGAGAGATAACATGATTAGCATGGAGGAACAACAGGGCTCACTATCCTGGTCGAAAGCCCTTCATATATCAAAACCGACCTGGACAACCATATCGTAATGGGGCATGAGGCCGCCGAGCGTCACGTTTCTGGATTAGCAAACTTGCACGGTACCATCGAGAGGATGGTCGTCGCAAGGAATACGGCGGCGACCAAATGCGTCTGCCAGATGAGAGTCGCGTGCGTGTTGTAGGGACTAGGATCGTTTTCGCTCATCTGAACTGAAGTGTCCTGAGACCGCAAATAAAATTAGAAACAGAGACCATCGCGTAAGTATTAGCAAGATTCATATAGCCAACCTCCTTATTTCCTCGTGCCGGATCTCTGCCTTTGCGGCTGTAAAACTATTGGGGTAGGCGTATCTGGACAACCGGCAGGCGCTGGTCGAACGTCAGAGTAAGCCCTGTTTGGAGGAGGCAGGTCATGATCAAGTCTGGAGAACTTCCAGCCGCGAGGGGTTCTTAAAGCTCATAAGAGTTCCTTCGCTATTTGCACCTATCTACCGGGGTTGACTAGCAGTGAAAAATCATAAGCATCATTCGGCACCTTCGGAGCTAAATATGCCACGGAATCCGGCTTGGACGGGGGAAGGAGCAATCTTTGTCTAGGCTGACACGGTGGAGGGTCGAGAAGCTGCCGATACGCCCACCCTGCAACTTGATTGTTCCAACCTGCACTCAGCTACGCCCGGTAGGTGCTCCTTGGGAATTACGCGCTATGATGACGGTGCATTGCCCAGTGCAGATGCAAACAAGTGTCAGAAGTGTAAAGCTGTGCGTTCGAACATCGTCCCACACGCAAAAGAAAAGTCTTAGAACCTTTACGAGATCATTGTCCTAATGAGAGACCATATACCTGGTCAGAGGAATCGCAATTTACCAGTACCACCGCGTTTTTCCGTATCGAAATGTGGCACACATGAAAGGGCGTTACGTGTCCCCAATTAAACAAAGTTGACTAACGGCATTATGCTCGGCGATGTTATGGTTAATTCCGTCGTTAATTAAACTAGCTACCCGCCACCTACAGGCATGACTGAAATTTCCAGATATCTTCGGGCGAGGGCTAAGACACTACCTTTACTCCTCCCACAGACACTTAACTACTTTACGCAGGAACGGCTGCGATCGTGATTGATGACTAGGTCCGCAGTCATGGGCGTCTCCCAGAAAGCACTGTCAACCGACGTTGCAGTTTGAGGCGTGGTTACTCGCCGTGAAATACGAGGTTTCCCCTAAACACGGGTGAATACGGTGAGTGTGCTCGCCGTCCATTCTATTCTAACGTTGCGTTAGATAACATCAACCACGTTCATGCCCCAGGTCGCCTTGCGATGTAACCCTTCCTTGTCTCTAGGATGCCGCTCAACAGACACGGGCGGCATTAACGGACCCTGCCCTTGGCCCTCGATCAGCTCCACTGTTAAAGTTCCGGCCAAAGTGAAATCGCATTCCTCGCTGCAGTTACGCTGATCAGAGCTTTTTACATGGAGCACAAGGACTACAAGACAACAACTTGAATCGCCGCTTTCTCGCAGGAACATTCCATTTTTAAACTGGAGGGGATCTATCAGGTCTGCTCTACCTCTCAAGACAACCACGGGCCTACACAGGTTTTGAGGTGAGGGGAGCGACCGACCGGGTAAGACTGGATTCAATGCTAACCTGTCAACTGTTAAATTGTTAGGAGAGCTGTATTGGTGATACTTGACCGTGATTGTGTAGCGTCCGCATTCTTTATAGCACCTGAAGGCCGGATAAGAAGAATGGGTACCACGTGTATCCATCGGATTTACTACCTGCACTAGGATGAGACGAAGCATGACGCTGGCTATGAACCAGTATCGTGTCACGTAGGTTATGGCAGCCGGGATGCAGACGCGCACTTTGGCCGATCGTTGGACCTCACAGACGCTTCAGGTGTAAAGAGTCGATGGTGCGCGCATCGCAGTAAGCCTATCGCCTAGGCTTCTGCGTACTAACATCTTCCGACAATGTCGCAATTGGGGCAGGTGACGAGGCGGCCATATGCGGTCGGTCCCCTCAGCTAATGTCGTTCACGCATTTCTCTTATGTACGACATAGTTATCGCCGTGACTCGTTGGCGCAATATCGTAACCTTGAAAAACAGTTGCCTTGTTGTGGGGCGTCAACTGTTGACCTGTCGTATCGGGACTCCTCAGTCGATGGTTTTTGGAGCGCCCGCATGCCCAGCCATGAAAGTTTCACGGGCACTAGACAGAGCTTAATTCAACTGTCGCTTGAGAATGAAGTTAGCTCCAATTTGTATTCTCGTCATTGAACTACAGACAACGGAGCACATTGTTTCAGGGTGCGTTAATCATAGCCGGTGATTACATCGTTGAGATTTGCGCCGCCTTGACAGCTAACTAAGTCGAGCGGGGAAACGTATATCATTTTATCATAAATTGGAGGAACCGAGAACATGTTGTTGTAATCCGACCTTGAGAATACCAAAGAGTTAAGTGATAGAGATTTTAACTGAGAACAGACGTTAGCTTTTTTTTCGAGGTGGATGTAGTGATGCGAGTCGCGCGAGTCCGTCCTACCTTAAGCAACTGTAGTGACCGTGTGCGGCGGCCACTGCGAATATTAGGCCCGTTAAGCTGAATTAAACCGGCCAGCCCAGTCCTTGTCAGGTCTGATGTCGGACATCAAGCAGATGAATTGGAAGAATAGGTCGTTGCCACCCGCCCGGAGTCTCCTGCTCCCGCTCCCAAATCCCCCCGATGTCATAGACATTAGGCGGCTAGGTTCGTCGAAAAATTACGTTGGCGTTTTTTCCGGCACGTGATTCACAGCGTGGCACCTAGAGCCCTGTGGCGAGAACGCGCAAGCCGCAATCCATTAACCACTCCCCAGAAATATGACGCTGAGTCGGGACCCTTAGTGATGAGGGCCTTTGCGAGATCTGATACTACATTTAAAGTGGAATTGGACAACACGCCTACGCAGACTATTCAACTTTCCGGGGTGCGGTATGGTTTGCGTGGTTTTTTACACAATAGCTAACTGCACTTTGGGTCCCAGCCCCTGGTTCAGTCGTCCCGACGCTTCCCCAGCTCGATTAGCCATTCAGCAGTGCTGATATCTAGCCGTGAAAATGCCCAACGACAGACGAAACAACCACACTGCGCTCGAGCAGGACCCAGAACGCGAGACGTAAAAACTCGGAATGGGCGGCAGAATCTTTGGAACGCCTAGTGGCTGGTATTTCGTGATTTGCAGGAGTTATGTTGCAAGTTGCTCGGCCGGCGTCCCATAGTAAAGTCCTGTAACATCTTCTAACCACGTAGACCTACAACCCAGAACGGCGTCGGATTTGATAGGATATTTTCAGCCACACAACAAGTGTGGTCGCAACGACACGTCCGGACACGTACCCCTAAGGAAGTATAGCTTGCGTCCGTCGTTATTTGGTACGCGTACAAGATTCGCCCTGGAACCATAGGAAGAGTACACTCCTCGTTGCAGTTTCTTAGATGCGACTGCAATGACTGAGCAAGGCATCACTCGAGATTCTCTGTATCTGGCGGCCATTGCCGACTTAAACTCCCAACTGCAATCCGTCCGCAATGCTTGCAAGTATTTAGCGAAGTCACGTGCCTTAAGATACTGCCCGTTCGGGTCTCTATGCGCCTTAGTTGTATGCGCGGCGTCGCACTCCTGTAACGTGTGAATGACAAGCCAAAGAGATACAGATACTGCGCTATTCGCCTTCGGTGTACCGGCGTCAGCGGTGTCACATGGCCACTCGCTTACATCAATTGCCAGGCGAACGCGAACAAAATTCCGCACTAAACTCTCCAATATCACTACTCAATATCGTGAGAATGTAGACACGGTGGCACCGTACACGGGCCTAAATTTACCGCAGTCCGCTGATGACCCTGGTATGGTTACATCGGATTCGCGGCCCTGGATACGGCGGCATTAAGGTAAATTCCCTGTATTGTCCTTCATTTCCCATGAGAACATAATATGCATGTCTACCCCTCAATGTTCATTCCTAATGTATACGCTGTCAATAGTAGCGAATGATGTACGGCAGACGCCCCTCGGCATGACTTACAGGAACGATCGAACCGCCCGCATCTAACCTCTTGGGACTCATTTAGCTAGGGCAAGGGTACAGCATCGTATGGCGGACCTGACACCCAAGCTCGTCTAAACACGGGCGCGGTTCACACAGGAATGGCGGCGGTCACTGCCCATCGCGAATGTTGACGCTTCCTAAGGGATGAACTGTAGCCACTTTTGAGGGCAAGGCTAGTCATAAATATAACTACTTAAAAAAGCTGCATCCGAAGACGGAGCTCGTGCCTACATGCATAGTACAACCAAAATGTCTCCTTATCGTTTCCCATTTACGCGGTGTGTGCCAGAAGAACCTCGACGGTTCCTTCCTCTAAGCCGTCTACTTATGCAGTCTCTCAGCACCTGGCGAAACATGGACCGTTTGGGTAAACACCCCGTGGTTGATCTGTGATGATCGCCTTTTGAGATGGCTGGGTTGATGTAAACAGCTAAGAATGTGCGTTTATTGCTTGGCCTGATGTTAGATGGATACTCACCGCAAGTGAATTGAGTATGACCGGGCGTGTAAAAACCGTAATACCGTAAAAAAATGGTGCGGAGTAACATGGTAAGTGCGGGACCGTGTACAGATTTATAAAAACTGTGAGCAGCTTGCCGCTCCATGAGGAAATTTAACGCGCCGTGAGTAGTTTTGGTTCCAAAAGTTCGGTGCGGCCGGAATTGAACACTGGCCATCTCTCTATATGTAGATCGACGACTATCATATCACCAGAACACATTCGAATTCGTTGAGAGCGCACATCTACGCGGACGTAGAAGTCTCGATGCGACGAGGGGAGAGAGGGTGAGCTGAGAGTTGCTCTCTTTAAGAGATCTGCTGGTTTGTACCATGTTAAATTTTCCGCAGACCCTAGTGCACCCTTACTCTCTAATCGGACACAGTTTTACGGGTACCCATCTTAACGTCAGGCATACGGCTCTAAGGCGCTACCACTCACAAGCGCCGCGACGCGACGCGACACGCTTTGATCCGTTAACAAATTTTATTGGAATTGTATAGGCTCCGTTTAGTCCTAGTTGCCGTGTCCGTACCGTTAATCGCCTAATTATTCGAGAGGTTCGCGAGAAACCCCAAGAGCGATCGAACGCGAGATCTAAAGGTGCCTACTGAAGTACGTCTTACGTGGCCACTTAACATGCCCAAAGAGACGTTTAAAGAAACTGGACCAAAACATCTTGAGAAGGGTCGTTCGTGTGGTGCAGAAATCAATTAGATTCATTTTTCGTTTCATCGTGTGTAATCCTTTTCACGGTACCGACTGGGTAGACCTTGTAAGCGAAAACAAGCCTTGTCTCCTCTGGCCATGTGGAGCAACCAATTCCGGGTTAGTCGTGGTAACCATTACGACTCTGTAGATACAAGGACCCCTAGTCGGTTCGAAACTTGTGCACACCGGCTACCTGCCGAAAATTACGGTGGTCCAGGGATTGCATATAGTAATCATATCGACGCGTACAGGGTGTCCCAGCGTTGTCGAGCTTGAGCCGATGGTGTTCCGTGGAGGTTGTGGACCCGAATATAGGCACTCCAACGCGGTCAAGTGTCCCGAGATGGCGTGACCCGAGTGGAGTGAAACAAATTCGATGGACAAAGAGAATCTTGCTTTTTAATAAGTTGATTGTGAGGCCTCGCCCAGGACGCTCTGGTAGCGCCAAATCTAGAAAGCACGTGTGCTGGCCGTTGCATCATGACGCCTAGCGCTGCGGACTAGAATTCTAGCGTTTACCTGCGACCGATGAACAGACTGCAACAAGGAGTTAACCTAACCACTAGGTACTTCTCGGCACGTGACTGCCCCGACTAACCCTTCTCTGCTACAGCTCTCTTTCGTAGTGCTAATCCACTTGAGAATTTGTGTCTATCGTTTTCACCACTGATACACTAGGACGCCGCGAGCAACGAGCACTGTTCTGGACCAGTAGTTCCGGATCCCAGCACTCGGGCAGATCCACGCCCCAGGTTGAAAAACCCGTAGTACTCGAAGTTGCCATACTAGCCCTGCATATAACTAGAGTAACAGGTGAATAGGGAACTGCTAGATTACGCGATCCGTATAAAAGCAATACCAAATGACGAGGAAGCTGCAGACCTTCTTCGACACGAATGAAGTTGTAGGACAACGTGGCCTCCATGGTCTGTTCGACCTAGGCCCTTGAGTGTTATGTATAATTAGACATGCTCCACCAGGGTGATATGGCAGCGACATACTCCCTAAGAGGACGGCATCATTCCCCACGGGGAATTACTCGGCTTATGACGGCAATCATCGTTGGCCGTTGGAGTGATCCAAGGACGTCGTATTACGCGAATCCCGCGCTGTACAAGCAGAGTGGGCCTAGAGGTCTTGGTGATTTGGTAAGGCAAGACTCAATGATGACGTTTGCGTATGAGGTTAGGGTTGCTGAGCGCAATATTGTTCATGGTGGTACTGTACAGCTCGAGAATAGGGTCCGTTCGGCGGACGGCATAATAATGCGCGCTAGAGATTCAGTGGGCTTCCATAAGTAAAGCACAAGGCACGTTTACCACTTCCCAGCATTTGCTGTTCCGCCACGTCAGCCCTCTGGACTAGTACCGTGCCTGTACGACGCGTTAGAACGTATAGATGCCGTAAGGTTGTTGAGAATCGGCAAGTGTTCAGACTGGAAGATTGCATGCCGAACCACGTCACTAGGCGCCACGGCGACGTTTATAGGCTGTCTGGGATGCAAGTGACAAGGTGCTATGTGCACTCGTGGATGGTTTTATAGTTCACTGCGAGTGCCCAGGTGCTAAGACTTCTCTCGTTCTACCGGCATGTTTAGTATCAGTTCTGAAATTTTGCTTCTTTGTTCATGGTGATATTATCGATCAGTTCGCCGGAGGGCGATCATCACGACTAAGCACGAGGCCCAATTCCTCATATAATGTTGGATTTGCAGTAATCTAGGCTCCAGATAGATCTGACATGGCACAACGGTCCACTTCCCCAACCGCTTTAAGTCAAAAGAACTTGAGCCAGTTTCAAAAAGATAATGGACGCTGCCTCTGTCAATTCGATACCCTTACCACGGGATGGCAACGAAGAGTGTCCTAAGGATATCTCCCTCGGAGCGAGCACGCGACTCCAGCAAGTGACCACGTCTCGTCGGAACATATGGCCATTAAGGCCTAAGGCACTGAAGCTAACACTGCCATTACGAAGGATGACCTCCCCTTGTCCGTCGCGTTAACTCTGAAGCATCGGAATCTCTAGATTCCGGCCCACGGCTCACGGTTAGATATCATACGACGAGCCAATCATACGGCTCTTGATATTGCCATTAAAGGTCGAGCCTTGGGACTGCGGGGGATAAAACCCCCCAATAATTCAAGTCCAGGATGGAGGCCAGAATTACAGGCACTTGCGCCGGCCGACAAACGCCGTTCGACGGAGATAGAGGCAGATCACTAGGGGCTGGGTGCCTTAACGGTCCAATGGGGTGGCTATTCGCATAGACAAAGGGGTAACTCTGTCGAACGGATTCACCATCGCAGCGCCACCTACCCATTTCTCGTCTCCCAGAAAAAAATGGGCCGGGGTCGGTGGCACGCCACAGCGTTGTCTCATAGGATTTTCAATATTGATTAGCGCCAGA"
     expected_result = "27 33 35 41 47 62 66 72 80 94 96 107 113 129 130 138 161 179 184 191 194 207 208 222 228 238 240 248 259 266 269 281 284 291 295 300 307 310 318 320 345 358 360 362 372 377 378 389 390 391 406 408 409 417 430 439 441 447 450 464 470 471 477 487 491 496 497 500 502 511 518 531 542 545 551 553 566 572 574 585 605 622 651 664 666 683 689 699 700 717 718 719 737 739 773 775 781 783 785 803 815 818 837 839 843 846 861 868 870 881 886 892 904 906 909 932 939 951 953 955 964 977 983 991 1001 1007 1009 1018 1020 1036 1038 1057 1062 1068 1070 1077 1091 1099 1110 1113 1132 1136 1139 1142 1152 1158 1161 1168 1179 1185 1190 1201 1220 1222 1231 1247 1249 1256 1273 1292 1305 1313 1328 1329 1336 1338 1354 1356 1373 1378 1389 1395 1400 1405 1411 1413 1424 1435 1440 1452 1466 1476 1477 1484 1496 1498 1521 1526 1534 1567 1575 1584 1585 1605 1619 1624 1640 1646 1648 1652 1661 1676 1691 1692 1694 1714 1715 1717 1725 1726 1776 1789 1791 1794 1795 1819 1825 1827 1833 1841 1843 1857 1866 1871 1873 1901 1913 1915 1921 1933 1946 1959 1963 1984 1986 1997 2000 2002 2010 2014 2016 2027 2036 2038 2040 2054 2056 2060 2075 2089 2102 2104 2110 2112 2124 2136 2138 2140 2146 2158 2160 2163 2172 2177 2193 2195 2201 2206 2217 2219 2225 2251 2266 2267 2272 2280 2288 2290 2296 2304 2310 2312 2314 2322 2330 2337 2351 2358 2378 2383 2386 2399 2401 2414 2428 2434 2438 2440 2441 2451 2465 2468 2471 2479 2488 2500 2509 2518 2519 2520 2522 2528 2544 2547 2550 2560 2562 2573 2611 2613 2617 2634 2644 2657 2661 2670 2683 2687 2689 2700 2706 2712 2724 2725 2736 2752 2758 2764 2778 2789 2791 2812 2834 2841 2848 2850 2852 2859 2867 2872 2880 2887 2898 2899 2908 2912 2927 2937 2939 2972 2980 2982 2991 3000 3006 3010 3022 3030 3040 3056 3057 3069 3084 3098 3109 3117 3123 3135 3141 3146 3163 3174 3176 3189 3203 3210 3214 3223 3233 3243 3245 3246 3251 3257 3269 3288 3290 3295 3296 3309 3318 3322 3342 3343 3349 3365 3378 3391 3393 3397 3399 3419 3425 3431 3445 3447 3448 3456 3472 3495 3510 3512 3518 3527 3528 3530 3532 3539 3541 3576 3578 3591 3596 3623 3627 3629 3633 3642 3646 3667 3669 3681 3683 3684 3697 3698 3700 3706 3709 3712 3724 3727 3732 3744 3757 3761 3765 3776 3778 3784 3797 3813 3815 3821 3835 3837 3841 3851 3862 3863 3865 3891 3895 3905 3915 3918 3921 3935 3937 3939 3956 3970 3986 3987 4001 4003 4004 4015 4017 4030 4031 4032 4045 4047 4058 4081 4093 4094 4100 4106 4109 4111 4113 4115 4119 4124 4131 4133 4135 4145 4146 4151 4155 4161 4165 4167 4176 4178 4195 4205 4210 4216 4223 4250 4267 4273 4282 4288 4293 4310 4321 4344 4346 4347 4358 4382 4384 4390 4395 4408 4415 4423 4437 4439 4442 4457 4461 4467 4482 4486 4492 4500 4515 4534 4543 4545 4549 4560 4562 4567 4568 4584 4602 4618 4627 4630 4637 4639 4643 4656 4663 4688 4690 4699 4701 4704 4714 4729 4733 4751 4767 4785 4799 4812 4848 4852 4862 4876 4887 4888 4897 4907 4917 4926 4932 4933 4936 4941 4945 4952 4955 4962 4974 4981 4988 4991 5013 5024 5056 5063 5069 5078 5087 5093 5097 5102 5123 5128 5139 5141 5149 5150 5152 5173 5175 5191 5197 5205 5212 5213 5235 5247 5263 5272 5277 5279 5292 5298 5309 5312 5326 5336 5359 5370 5377 5380 5386 5392 5402 5403 5408 5418 5420 5429 5435 5439 5447 5457 5470 5481 5495 5501 5504 5516 5518 5524 5530 5541 5551 5565 5566 5579 5583 5584 5590 5598 5604 5613 5641 5643 5645 5662 5676 5688 5694 5698 5702 5704 5722 5727 5728 5735 5741 5743 5757 5780 5786 5796 5797 5820 5839 5850 5853 5859 5873 5874 5884 5890 5893 5896 5902 5904 5925 5940 5948 5950 5961 5962 5976 5992 6000 6008 6015 6021 6023 6044 6046 6052 6054 6058 6064 6077 6083 6090 6093 6095 6101 6109 6115 6128 6131 6137 6142 6152 6160 6170 6176 6181 6182 6197 6203 6224 6228 6229 6240 6241 6256 6257 6273 6286 6287 6288 6311 6313 6315 6326 6337 6346 6360 6385 6387 6393 6404 6409 6410 6413 6421 6430 6442 6446 6455 6471 6483 6484 6492 6506 6508 6517 6530 6542 6561 6574 6585 6594 6595 6603 6610 6614 6620 6626 6638 6648 6654 6658 6660 6671 6692 6695 6704 6727 6728 6769 6771 6782 6793 6796 6797 6814 6823 6831 6837 6848 6851 6866 6868 6872 6882 6888 6892 6893 6907 6909 6919 6921 6937 6942 6943 6964 6973 6985 6986 7002 7005 7015 7021 7047 7053 7062 7077 7079 7094 7106 7114 7117 7119 7145 7151 7156 7169 7175 7177 7183 7189 7198 7199 7204 7210 7219 7242 7243 7254 7257 7266 7272 7277 7284 7297 7298 7306 7314 7322 7326 7333 7346 7350 7360 7380 7401 7403 7407 7427 7428 7430 7448 7456 7462 7486 7488 7502 7508 7513 7526 7527 7559 7561 7569 7575 7594 7600 7613 7654 7661 7667 7671 7673 7684 7686 7694 7706 7714 7726 7733 7735 7755 7756 7765 7767 7769 7802 7810 7818 7824 7831 7840 7845 7847 7853 7861 7864 7894 7896 7904 7922 7928 7953 7965 7972 7980 7982 7986 7988 7996 8001 8012 8016 8020 8027 8031 8050 8061 8082 8086 8093 8106 8118 8126 8128 8132 8141 8143 8158 8168 8188 8195 8198 8206 8212 8237 8253 8268 8275 8286 8288 8292 8307 8308 8317 8326 8335 8341 8343 8357 8365 8367 8375 8381 8387 8388 8390 8399 8413 8420 8430 8446 8459 8465 8471 8474 8487 8526 8549 8560 8568 8581 8583 8592 8594 8596 8600 8602 8620 8633 8637 8641 8647 8649 8656 8662 8664 8668 8676 8688 8690 8698 8704 8720 8732 8739 8745 8751 8760 8763 8770 8802 8804 8810 8822 8826 8835 8843 8850 8869 8873 8882 8884 8896 8935 8954 8958 8982 8987 8994 8995 9001 9007 9013 9017 9025 9043 9044 9065 9088 9091 9105 9111 9125 9127 9145 9154 9172 9181 9196 9198 9209 9215 9217 9223 9225 9226 9244 9246 9254 9256 9264 9269 9271 9278 9280 9282 9299 9304 9309 9331 9337 9347 9365 9373 9381 9390 9398 9417 9425 9434 9436 9448 9451 9468 9478 9482 9493 9498 9512 9513 9528 9530 9540 9549 9555 9557 9566 9572 9585 9587 9593 9597 9599 9603 9611 9618 9626 9629 9633 9652 9653 9669 9670 9681 9690 9697 9708 9714 9719 9720 9729 9730 9733 9739 9750 9761 9765 9768 9784 9785 9786 9811 9818 9832 9835 9838 9852 9862 9865 9870 9871 9873 9882 9901 9925 9927 9943 9952 9962 9983 9987 10000 10003 10004 10005 10030 10032 10063 10074 10095 10106 10108 10115 10117 10128 10134 10142 10151 10159 10163 10176 10182 10188 10198 10201 10204 10222 10229 10231 10244 10256 10266 10280 10281 10289 10304 10310 10331 10336 10342 10346 10347 10361 10371 10374 10376 10382 10401 10405 10407 10421 10429 10437 10445 10449 10457 10463 10478 10482 10498 10511 10517 10518 10529 10530 10533 10550 10551 10558 10571 10583 10608 10618 10633 10635 10650 10669 10680 10682 10684 10697 10706 10722 10733 10747 10750 10751 10774 10776 10795 10805 10809 10811 10817 10820 10840 10850 10851 10872 10874 10897 10903 10905 10938 10949 10953 10959 10964 10976 11002 11008 11019 11028 11030 11043 11059 11061 11069 11089 11092 11102 11114 11117 11120 11126 11132 11143 11154 11163 11165 11179 11180 11182 11183 11190 11208 11214 11219 11221 11232 11238 11255 11259 11264 11278 11286 11292 11303 11307 11316 11324 11325 11340 11349 11359 11365 11378 11393 11395 11407 11423 11431 11437 11443 11463 11465 11471 11488 11515 11517 11526 11547 11550 11554 11556 11560 11567 11576 11578 11582 11595 11611 11619 11621 11625 11643 11649 11659 11663 11665 11690 11701 11702 11712 11716 11718 11741 11751 11753 11774 11780 11782 11790 11805 11819 11820 11824 11837 11844 11848 11863 11870 11872 11888 11894 11903 11907 11913 11934 11935 11936 11945 11957 11972 11977 11984 11998 12007 12010 12023 12026 12030 12046 12052 12062 12075 12084 12085 12097 12098 12114 12120 12123 12124 12126 12134 12138 12140 12145 12146 12152 12160 12162 12168 12170 12176 12190 12195 12208 12229 12236 12242 12244 12266 12276 12327 12336 12339 12351 12361 12362 12363 12369 12395 12401 12410 12428 12434 12435 12443 12450 12463 12473 12475 12479 12485 12491 12493 12519 12536 12543 12553 12561 12564 12576 12587 12594 12596 12608 12625 12627 12635 12642 12653 12673 12677 12679 12697 12702 12708 12722 12736 12738 12742 12759 12763 12765 12776 12782 12788 12790 12807 12821 12824 12833 12839 12841 12849 12851 12872 12873 12882 12890 12891 12919 12932 12942 12945 12951 12955 12965 12975 12977 12983 12990 12992 12995 13011 13019 13024 13026 13032 13034 13044 13046 13053 13055 13067 13070 13076 13079 13087 13101 13107 13110 13118 13132 13134 13141 13152 13165 13178 13187 13198 13210 13211 13220 13236 13241 13252 13255 13265 13267 13276 13304 13306 13312 13331 13332 13345 13370 13373 13384 13407 13411 13416 13425 13439 13445 13455 13457 13461 13474 13486 13493 13494 13511 13526 13537 13547 13554 13556 13566 13576 13577 13584 13588 13590 13599 13600 13601 13606 13612 13624 13637 13640 13643 13655 13659 13666 13674 13677 13688 13696 13709 13718 13721 13752 13776 13783 13801 13802 13807 13832 13841 13862 13883 13888 13890 13895 13901 13910 13913 13926 13931 13934 13946 13949 13954 13957 13989 13993 14024 14032 14034 14052 14054 14071 14072 14085 14088 14089 14102 14114 14120 14126 14143 14146 14170 14172 14184 14212 14218 14220 14262 14278 14279 14291 14302 14313 14325 14340 14352 14360 14362 14378 14391 14393 14405 14424 14437 14438 14448 14454 14469 14475 14476 14486 14488 14497 14499 14506 14507 14513 14515 14521 14523 14529 14541 14564 14575 14577 14593 14601 14602 14612 14634 14635 14651 14661 14663 14669 14685 14687 14693 14704 14712 14714 14730 14737 14747 14749 14761 14767 14793 14803 14813 14828 14838 14839 14856 14884 14900 14914 14916 14920 14922 14947 14948 14958 14961 14982 14990 14992 14997 15006 15008 15021 15023 15025 15057 15063 15069 15087 15093 15103 15121 15122 15129 15130 15136 15138 15143 15157 15163 15164 15167 15175 15183 15199 15205 15219 15222 15230 15250 15252 15271 15281 15293 15306 15308 15328 15351 15360 15373 15378 15384 15389 15391 15413 15423 15434 15444 15446 15450 15452 15455 15471 15481 15496 15501 15504 15519 15533 15535 15553 15564 15578 15580 15586 15587 15595 15605 15616 15619 15625 15636 15638 15646 15654 15670 15685 15688 15693 15695 15696 15705 15711 15712 15718 15724 15739 15741 15752 15760 15771 15797 15821 15834 15844 15872 15874 15885 15893 15896 15900 15911 15913 15915 15917 15921 15923 15946 15948 15964 15971 15986 15991 15997 16004 16010 16015 16028 16034 16043 16044 16047 16062 16065 16078 16081 16092 16093 16113 16131 16150 16167 16193 16199 16230 16242 16248 16261 16269 16274 16285 16294 16296 16302 16311 16313 16321 16327 16345 16356 16368 16372 16389 16411 16418 16419 16427 16433 16439 16443 16472 16486 16496 16506 16520 16523 16529 16535 16542 16546 16548 16563 16566 16568 16576 16585 16586 16593 16609 16617 16628 16644 16650 16658 16667 16673 16677 16678 16679 16692 16702 16707 16711 16725 16735 16738 16744 16746 16750 16757 16763 16765 16775 16776 16786 16791 16792 16803 16815 16824 16827 16831 16838 16845 16847 16851 16857 16865 16871 16872 16879 16887 16888 16907 16913 16915 16946 16954 16972 16976 16991 17003 17006 17008 17010 17021 17048"
     self.assertEqual(expected_result, " ".join(map(str, find_approximate_pattern_matches("TTAGCGCCAGA", genome, 6))))