P14008 [HackerEarth] Anmol and Biswa have got a water gun with colored pellets to hit Anurag as they have too much free time this semester. The pellets can be of K different colors. They have infinite pellet
普及-
题目描述

Anmol and Biswa have got a water gun with colored pellets to hit Anurag as they have too much free time this semester. The pellets can be of K different colors. They have infinite pellets for each color. The water gun has only two slots for pellets, both of which get fired simultaneously(i.e., the order of pellets in the refill does not matter). So they'll have to refill it a number of times. On each refill, they must choose two pellets, which must be of different colors. They aren't worried about that though, as both of them have whole of their afternoon free now.

Now, they decided to refill the gun N times, and want each refill be such that any pair of refill of pellets out of those N has atleast one color in common between them. They now start wondering how many such ordered sets of refills exist.

Mathematically, the refills, R_{i} are such that$, R_{1},R_{2},...,R_{N}, |R_{i}| = 2, R_i \subseteq {1,2,...K}$ and $R_{i} \bigcap R_{j} \not= \Phi$ for any distinct i,j ∈ [1,2,..N] .

Note: Print the number of such ordered sets of refills modulo 1000000007.
Input

The first line contains a single integer T, denoting the number of test cases.
Next T lines contain two space separated integers K and N denoting the number of colors for the pellets and number of refills respectively.

Output

For each test case, you need to output a single integer in a new line.

Constraints

1 ≤ T ≤ 1000
1 ≤ N ≤ 5000
1 ≤ K ≤ 5000

SAMPLE INPUT
2
2 2
3 2

SAMPLE OUTPUT
1
9

输入格式

见题面

输出格式

见题面

样例输入
1000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000
样例输出
524158764 412202372 502938556 386073305 897650772 997612360 771536906 366981120 619720107 1822719 150272885 319895009 924312889 821084021 112509035 706089570 579583535 388197268 717826087 796645559 157745687 233609745 349717665 125666922 689090164 31945278 97811092 276207692 141970300 465424580 389597892 467217349 550348383 585282734 674306043 250167012 199831237 368214076 822600091 147867700 804664870 712345431 973551819 450329290 661926599 763132638 79585499 169939966 346095192 776531314 31454557 478396662 930272583 973252301 843993483 320752263 548108236 242578997 176081477 703432023 610315647 798930737 684631546 999771016 883201602 71458813 67669273 145865858 308588284 413433348 242314884 724570905 250588311 989979951 778364830 997632728 60241629 796786665 480550875 224861747 428216984 657342586 374731108 336390928 693892319 197486646 544195754 534145847 121313388 217222705 40781381 215488004 262499569 122458475 602813117 899437906 322835653 726778187 78084819 684312673 196473865 925365940 346559941 254442076 435638699 880565687 347499215 756010724 643953393 391445124 745788261 262913990 950084816 5418784 298901328 313036531 993494018 211885429 63191971 293891059 182947096 569853500 730935168 163011374 421661330 977386512 193157106 539693452 681228535 279982666 658901600 106830854 772355573 479719970 649392494 212893728 300640236 206728696 439956371 889212650 513868716 102212881 221702113 638695974 905674178 205954294 79762331 761211509 387004577 71662043 904355916 796908791 712716272 265190538 245708787 992976303 874999539 921873217 308997073 70170402 722101728 479008719 474023988 53045789 245157357 547365539 750189121 175184794 117597027 584655532 805921027 405732323 182045909 564355132 706251510 892623094 344383408 426349888 524217189 152727207 827466848 698553832 736151882 47368220 201831679 590364544 882657933 631822213 12798627 232403880 652487482 251010892 487511720 884649857 24012233 958401963 79367208 440829006 196993289 196069218 751648893 897442465 515621377 405026194 896778602 110145620 169189819 907299858 822894704 768895244 566525084 83868591 86847514 158246913 107539956 919673992 335187672 746849220 447176902 442534671 36621900 995934156 46738951 305220769 210920147 806299773 356287198 785061519 236390878 24723458 30291840 884473987 728194809 994073900 729599558 500822824 411361141 512891360 798797609 740921424 730944269 179282476 172733453 534806394 631992700 353541046 692955408 84533576 732709939 839801937 861739520 94050326 375868073 772045084 129283384 331023807 661701437 114789115 794334211 474124014 840960991 851140551 127935385 561613682 237769426 374645912 651717585 859358143 375427616 974319655 894669889 793457831 275636563 117925459 915498305 221071570 377033343 125505407 346731412 74874807 149728616 655392584 945327347 666074582 422034377 800924614 441543129 295296279 884291870 458842902 375049016 708390347 952600962 40343849 340596770 935364943 189427822 605125561 608458769 435497945 874902031 496267306 611841174 714152611 767920483 952221040 279581079 277986839 526082227 422708245 698596070 754595315 240866729 263131034 575666458 600835208 787104220 976605259 374910098 729152753 159522879 775935032 358394663 463212796 998182020 417500477 58881144 93314637 681214754 623960068 892157645 216085387 143280710 866042076 547497599 351896777 471563717 424520116 438328845 631285035 456497738 931132829 178938977 816366941 561747450 978444010 582911021 88587154 707901740 656982809 582041981 891001872 619246318 324826103 472803240 970841014 535113958 159678207 249614699 81401088 664673137 421839821 961768131 413747199 664235476 363503119 445138612 893985261 47473748 898750300 206586678 935700733 594604690 439013029 876472943 121885215 444076499 268915856 927414415 74338928 952236953 496921787 640567909 436009410 690182556 168154612 667621291 325217058 699471574 755776932 328521232 886884718 585830933 59198187 729649315 488107484 353826482 279025068 915256184 265636930 880208557 254261777 774420870 353308708 75949213 15186918 904623755 209260631 304452030 968124011 857430253 436495027 760382485 289884547 674702449 148407558 489674455 19317542 964341203 532959101 16327301 628108701 899898807 183612356 300447301 165230411 445695987 705898417 60642606 361297066 480974710 634673868 912142845 28811803 655439785 73071659 591270809 42353872 16542154 479609527 613193593 706531455 654577673 393318811 407241545 342433288 330915711 911314729 84065464 492350435 42122155 497812832 354686920 239750321 915473359 852039471 143505137 381907992 59589234 953782988 921939345 971956348 534409849 388598684 656725027 636893640 198169551 62387167 534368321 197801650 993486459 665781406 349713256 524476592 401555566 269856419 269043030 958869877 280981137 795706382 440443866 710046999 140242152 733786535 226462476 910819411 965950912 756260930 573258439 183838985 99645239 756350459 257963371 187912919 961932802 8880346 248464569 837797848 115910630 203488453 713362315 355180673 864398690 35069059 348196498 874589128 792301230 789788403 184948604 756714948 315987712 319329281 994178528 875336979 912250525 154325964 468197053 373658507 574186029 602722923 10210040 579136109 610935450 649582926 983219484 667491981 862559278 976159011 580917644 841857359 746767767 333887609 531640472 642687465 190231707 954067497 474168438 537318339 127441977 175068806 586014524 256218095 152335377 299223028 349838603 103840526 30296806 536636221 291674415 387372804 82625552 632618357 178815006 77121828 774850397 447644628 236805734 670582496 422755858 787517738 692331010 477919681 371443399 767222228 436339315 136071147 746108324 513122010 436534678 620810266 215565421 84416431 310274132 929446488 951198538 215267031 993782363 777674278 609001123 965281301 506278987 203319949 506495373 569562557 729763919 248379792 724987507 119954239 916489140 967387290 238583013 13814636 402229846 295756190 777922001 510767903 299617571 953883776 667763343 596758133 987613323 246168187 211194543 433564782 59283517 903383998 380270598 652717596 82884570 719448478 387450621 259355509 305315048 945532296 191313604 383854665 518581495 282164400 375067050 141723128 752887094 84771713 904750568 375699526 190961291 540240031 918335418 918411524 722671242 947660008 533740868 662314464 588173214 96840671 115835423 965307265 99600584 815914434 446000737 469086328 731941246 289821505 155617338 708568692 771411866 213086840 229339461 475949058 340630325 414825537 733631511 408150998 517939140 672617860 283195583 493796259 55394563 969793796 219311505 801165185 570583936 768328973 922967650 568102683 189801611 66489602 699145569 849319329 337081702 987875291 265475587 301651855 758431105 966250330 158021624 312995813 588141974 707176288 129309756 548544976 411703001 828305791 768073524 983492790 851010241 841323367 248223240 390359777 431708424 724654603 767650179 237942844 718826863 631257290 282103964 162431961 771310888 947078480 233465335 617200425 196185998 862231785 934901200 264098296 463981930 953248259 57824815 496283774 286569448 641029565 964092241 794516250 504389351 70183532 271402764 292281433 677521334 186588096 472638441 578588388 573401952 13722668 310998898 291235384 735416822 965858216 296308573 917676378 505433368 87879970 213734231 972367002 782386014 382750151 520429776 651336975 799694896 755863494 377024036 583619350 178555547 5908982 59803322 511586830 98988003 99879298 452092653 443319742 750961594 305476275 385819808 494475061 79151756 817291397 28826484 219393360 602559077 704759224 537003582 386090316 922150436 674726510 104436660 377973286 520149338 432630291 763963774 831792876 274919115 623697391 386954429 765931267 823145031 561134386 215635948 365674037 205777897 772156561 506343864 551112613 164859470 978415029 13536962 32309271 854842430 719201501 460269557 199039533 33992416 139554213 641294663 556420409 473469318 630587196 66607969 803134602 426086464 23599485 13634735 815252773 256037025 203654419 336079008 908191736 406643411 826829147 761339367 589800930 407680889 803274898 103523374 925501015 239626703 596287738 28646816 465354455 444817779 384521192 237335090 505402009 460949271 285334863 799000850 152494078 363812861 543203064 706905245 661689933 86433221 261986369 588493979 454820810 934695741 402764599 357512907 867772296 789140385 809553222 469524961 594544715 601217916 856591724 866079046 157142497 330869100 800082100 142932475 152088700 927970161 850157752 719736371 460575754 281830192 43380357 832531108 261750935 943758578 189178085 521119566 181579664 131165234 455817538 568251587 320127865 60008009 897853752 183337507 55404925 729564722 469065427 431220520 507601374 485535054 265081852 769978750 601074983 247968787 515047432 329371556 835251759 441380291 977875987 34229409 195711105 228564392 257823460 411502012 154966998 401209488 988972987 294083641 320859466 193824729 522089682 574319595 543626353 327391808 933920976 326722769 367176460 720782141 128450654 128129937 104667052