Crack the Code

The “Crack the Code” challenge is a challenge proposed by the DMCommunity. It easily be solved by hand, but it is of course more fun to write a program for it. Even though it is not supposed to be implemented in a DMN-like way, we implemented it in cDMN just for fun. :-)

Crack the Code

You need to crack a 3 digit code based on these hints:

  • 682 – one number is correct and in the correct position
  • 645 – one number is correct but in the wrong position
  • 206 – two numbers are correct but in the wrong positions
  • 738 – nothing is correct
  • 780 – one number is correct but in the wrong position.

At first glance, this is quite a difficult problem to implement in cDMN. We need a way to split a number into digits, which seems like a special string operation. However, by being creative with maths we can perform the splitting, and our problem becomes easier.

We start by creating our glossary. In order to represent a digit, we create a type Number. To represent all possible guesses, we create a type Guess, which contains all numbers between 000 and 999.

Type
Name Type Values
Guess Int [0..999]
Number Int [0..9]

Next, we create functions which will map every guess on their digits. E.g., units of 345 will be assigned 5, in the same way that hundreds of 123 will be assigned 1. Then we also add functions to keep track of the number of correct digits a guess has, and the number of digits in correct positions.

Function
Name Type
units of Guess Number
tens of Guess Number
hundreds of Guess Number
correct position of Guess Number
correct number of Guess Number

After defining our functions, we add our constants. Sol1 through Sol3 represent the digits of our solution in the following way: Solution = Sol1 + Sol2*10 + Sol3*100

Constant
Name Type
Sol1 Number
Sol2 Number
Sol3 Number
Solution Guess

Our glossary is now finished. To model the logic of the problem, we start out by adding the formula for the solution, and the logic which will split any number into its digits.

Calc sol
U Solution
1 Sol1 + Sol2*10 + Sol3*100

Split Guess into digits
U Guess units of Guess tens of Guess hundreds of Guess
1 - Guess % 10 ((Guess - Guess%10)/10)%10 Guess/100

This might seem like a complex table, but it is not impossible to understand once you see how it works.

Next, we need a way to express the known guesses, and their information.

Known guesses
E* Guess correct position of Guess correct number of Guess
1 682 1 1
2 645 0 1
3 206 0 2
4 738 0 0
5 780 0 1

Now we need to define when a number is correct, and when a number is in the right position. For the right position, we achieve this using the following table:

correct position of Guess
C+ Guess units of Guess tens of Guess hundreds of Guess correct position of Guess
1 - Sol1 - - 1
2 - - Sol2 - 1
3 - - - Sol3 1

The above table counts the amount of correct positions there are in a guess. For example, for 682 we know that exactly one of the three digits is already in the right position. This means that either the 6, the 8 or the 2 is correct. The table states that one of the three SolX constants, has to be equal to one of the digits of 682.

For the number of correct guesses, we do the same thing:

correct number of Guess
C+ Guess units of Guess tens of Guess hundreds of Guess correct number of Guess
1 - Sol1, Sol2, Sol3 - - 1
2 - - Sol1, Sol2, Sol3 - 1
3 - - - Sol1, Sol2, Sol3 1

This table works in the same way as the previous one, except that a correct digit could still be in the wrong position. So for example for 206, two of the digits need to be equal to Sol1, Sol2 or Sol3.

We can now run our model using the cDMN solver. This results in the following output:

Number of models: 1
Model 1
=======
structure  : V {
  Correct_Number = { 0->3; 1->2; 2->3; 3->2; 4->2; 5->3; 6->2; 7->2; 8->2; 9->2; 10->2; 11->1; 12->2; 13->1; 14->1; 15->2; 16->1; 17->1; 18->1; 19->1; 20->3; 21->2; 22->3; 23->2; 24->2; 25->3; 26->2; 27->2; 28->2; 29->2; 30->2; 31->1; 32->2; 33->1; 34->1; 35->2; 36->1; 37->1; 38->1; 39->1; 40->2; 41->1; 42->2; 43->1; 44->1; 45->2; 46->1; 47->1; 48->1; 49->1; 50->3; 51->2; 52->3; 53->2; 54->2; 55->3; 56->2; 57->2; 58->2; 59->2; 60->2; 61->1; 62->2; 63->1; 64->1; 65->2; 66->1; 67->1; 68->1; 69->1; 70->2; 71->1; 72->2; 73->1; 74->1; 75->2; 76->1; 77->1; 78->1; 79->1; 80->2; 81->1; 82->2; 83->1; 84->1; 85->2; 86->1; 87->1; 88->1; 89->1; 90->2; 91->1; 92->2; 93->1; 94->1; 95->2; 96->1; 97->1; 98->1; 99->1; 100->2; 101->1; 102->2; 103->1; 104->1; 105->2; 106->1; 107->1; 108->1; 109->1; 110->1; 111->0; 112->1; 113->0; 114->0; 115->1; 116->0; 117->0; 118->0; 119->0; 120->2; 121->1; 122->2; 123->1; 124->1; 125->2; 126->1; 127->1; 128->1; 129->1; 130->1; 131->0; 132->1; 133->0; 134->0; 135->1; 136->0; 137->0; 138->0; 139->0; 140->1; 141->0; 142->1; 143->0; 144->0; 145->1; 146->0; 147->0; 148->0; 149->0; 150->2; 151->1; 152->2; 153->1; 154->1; 155->2; 156->1; 157->1; 158->1; 159->1; 160->1; 161->0; 162->1; 163->0; 164->0; 165->1; 166->0; 167->0; 168->0; 169->0; 170->1; 171->0; 172->1; 173->0; 174->0; 175->1; 176->0; 177->0; 178->0; 179->0; 180->1; 181->0; 182->1; 183->0; 184->0; 185->1; 186->0; 187->0; 188->0; 189->0; 190->1; 191->0; 192->1; 193->0; 194->0; 195->1; 196->0; 197->0; 198->0; 199->0; 200->3; 201->2; 202->3; 203->2; 204->2; 205->3; 206->2; 207->2; 208->2; 209->2; 210->2; 211->1; 212->2; 213->1; 214->1; 215->2; 216->1; 217->1; 218->1; 219->1; 220->3; 221->2; 222->3; 223->2; 224->2; 225->3; 226->2; 227->2; 228->2; 229->2; 230->2; 231->1; 232->2; 233->1; 234->1; 235->2; 236->1; 237->1; 238->1; 239->1; 240->2; 241->1; 242->2; 243->1; 244->1; 245->2; 246->1; 247->1; 248->1; 249->1; 250->3; 251->2; 252->3; 253->2; 254->2; 255->3; 256->2; 257->2; 258->2; 259->2; 260->2; 261->1; 262->2; 263->1; 264->1; 265->2; 266->1; 267->1; 268->1; 269->1; 270->2; 271->1; 272->2; 273->1; 274->1; 275->2; 276->1; 277->1; 278->1; 279->1; 280->2; 281->1; 282->2; 283->1; 284->1; 285->2; 286->1; 287->1; 288->1; 289->1; 290->2; 291->1; 292->2; 293->1; 294->1; 295->2; 296->1; 297->1; 298->1; 299->1; 300->2; 301->1; 302->2; 303->1; 304->1; 305->2; 306->1; 307->1; 308->1; 309->1; 310->1; 311->0; 312->1; 313->0; 314->0; 315->1; 316->0; 317->0; 318->0; 319->0; 320->2; 321->1; 322->2; 323->1; 324->1; 325->2; 326->1; 327->1; 328->1; 329->1; 330->1; 331->0; 332->1; 333->0; 334->0; 335->1; 336->0; 337->0; 338->0; 339->0; 340->1; 341->0; 342->1; 343->0; 344->0; 345->1; 346->0; 347->0; 348->0; 349->0; 350->2; 351->1; 352->2; 353->1; 354->1; 355->2; 356->1; 357->1; 358->1; 359->1; 360->1; 361->0; 362->1; 363->0; 364->0; 365->1; 366->0; 367->0; 368->0; 369->0; 370->1; 371->0; 372->1; 373->0; 374->0; 375->1; 376->0; 377->0; 378->0; 379->0; 380->1; 381->0; 382->1; 383->0; 384->0; 385->1; 386->0; 387->0; 388->0; 389->0; 390->1; 391->0; 392->1; 393->0; 394->0; 395->1; 396->0; 397->0; 398->0; 399->0; 400->2; 401->1; 402->2; 403->1; 404->1; 405->2; 406->1; 407->1; 408->1; 409->1; 410->1; 411->0; 412->1; 413->0; 414->0; 415->1; 416->0; 417->0; 418->0; 419->0; 420->2; 421->1; 422->2; 423->1; 424->1; 425->2; 426->1; 427->1; 428->1; 429->1; 430->1; 431->0; 432->1; 433->0; 434->0; 435->1; 436->0; 437->0; 438->0; 439->0; 440->1; 441->0; 442->1; 443->0; 444->0; 445->1; 446->0; 447->0; 448->0; 449->0; 450->2; 451->1; 452->2; 453->1; 454->1; 455->2; 456->1; 457->1; 458->1; 459->1; 460->1; 461->0; 462->1; 463->0; 464->0; 465->1; 466->0; 467->0; 468->0; 469->0; 470->1; 471->0; 472->1; 473->0; 474->0; 475->1; 476->0; 477->0; 478->0; 479->0; 480->1; 481->0; 482->1; 483->0; 484->0; 485->1; 486->0; 487->0; 488->0; 489->0; 490->1; 491->0; 492->1; 493->0; 494->0; 495->1; 496->0; 497->0; 498->0; 499->0; 500->3; 501->2; 502->3; 503->2; 504->2; 505->3; 506->2; 507->2; 508->2; 509->2; 510->2; 511->1; 512->2; 513->1; 514->1; 515->2; 516->1; 517->1; 518->1; 519->1; 520->3; 521->2; 522->3; 523->2; 524->2; 525->3; 526->2; 527->2; 528->2; 529->2; 530->2; 531->1; 532->2; 533->1; 534->1; 535->2; 536->1; 537->1; 538->1; 539->1; 540->2; 541->1; 542->2; 543->1; 544->1; 545->2; 546->1; 547->1; 548->1; 549->1; 550->3; 551->2; 552->3; 553->2; 554->2; 555->3; 556->2; 557->2; 558->2; 559->2; 560->2; 561->1; 562->2; 563->1; 564->1; 565->2; 566->1; 567->1; 568->1; 569->1; 570->2; 571->1; 572->2; 573->1; 574->1; 575->2; 576->1; 577->1; 578->1; 579->1; 580->2; 581->1; 582->2; 583->1; 584->1; 585->2; 586->1; 587->1; 588->1; 589->1; 590->2; 591->1; 592->2; 593->1; 594->1; 595->2; 596->1; 597->1; 598->1; 599->1; 600->2; 601->1; 602->2; 603->1; 604->1; 605->2; 606->1; 607->1; 608->1; 609->1; 610->1; 611->0; 612->1; 613->0; 614->0; 615->1; 616->0; 617->0; 618->0; 619->0; 620->2; 621->1; 622->2; 623->1; 624->1; 625->2; 626->1; 627->1; 628->1; 629->1; 630->1; 631->0; 632->1; 633->0; 634->0; 635->1; 636->0; 637->0; 638->0; 639->0; 640->1; 641->0; 642->1; 643->0; 644->0; 645->1; 646->0; 647->0; 648->0; 649->0; 650->2; 651->1; 652->2; 653->1; 654->1; 655->2; 656->1; 657->1; 658->1; 659->1; 660->1; 661->0; 662->1; 663->0; 664->0; 665->1; 666->0; 667->0; 668->0; 669->0; 670->1; 671->0; 672->1; 673->0; 674->0; 675->1; 676->0; 677->0; 678->0; 679->0; 680->1; 681->0; 682->1; 683->0; 684->0; 685->1; 686->0; 687->0; 688->0; 689->0; 690->1; 691->0; 692->1; 693->0; 694->0; 695->1; 696->0; 697->0; 698->0; 699->0; 700->2; 701->1; 702->2; 703->1; 704->1; 705->2; 706->1; 707->1; 708->1; 709->1; 710->1; 711->0; 712->1; 713->0; 714->0; 715->1; 716->0; 717->0; 718->0; 719->0; 720->2; 721->1; 722->2; 723->1; 724->1; 725->2; 726->1; 727->1; 728->1; 729->1; 730->1; 731->0; 732->1; 733->0; 734->0; 735->1; 736->0; 737->0; 738->0; 739->0; 740->1; 741->0; 742->1; 743->0; 744->0; 745->1; 746->0; 747->0; 748->0; 749->0; 750->2; 751->1; 752->2; 753->1; 754->1; 755->2; 756->1; 757->1; 758->1; 759->1; 760->1; 761->0; 762->1; 763->0; 764->0; 765->1; 766->0; 767->0; 768->0; 769->0; 770->1; 771->0; 772->1; 773->0; 774->0; 775->1; 776->0; 777->0; 778->0; 779->0; 780->1; 781->0; 782->1; 783->0; 784->0; 785->1; 786->0; 787->0; 788->0; 789->0; 790->1; 791->0; 792->1; 793->0; 794->0; 795->1; 796->0; 797->0; 798->0; 799->0; 800->2; 801->1; 802->2; 803->1; 804->1; 805->2; 806->1; 807->1; 808->1; 809->1; 810->1; 811->0; 812->1; 813->0; 814->0; 815->1; 816->0; 817->0; 818->0; 819->0; 820->2; 821->1; 822->2; 823->1; 824->1; 825->2; 826->1; 827->1; 828->1; 829->1; 830->1; 831->0; 832->1; 833->0; 834->0; 835->1; 836->0; 837->0; 838->0; 839->0; 840->1; 841->0; 842->1; 843->0; 844->0; 845->1; 846->0; 847->0; 848->0; 849->0; 850->2; 851->1; 852->2; 853->1; 854->1; 855->2; 856->1; 857->1; 858->1; 859->1; 860->1; 861->0; 862->1; 863->0; 864->0; 865->1; 866->0; 867->0; 868->0; 869->0; 870->1; 871->0; 872->1; 873->0; 874->0; 875->1; 876->0; 877->0; 878->0; 879->0; 880->1; 881->0; 882->1; 883->0; 884->0; 885->1; 886->0; 887->0; 888->0; 889->0; 890->1; 891->0; 892->1; 893->0; 894->0; 895->1; 896->0; 897->0; 898->0; 899->0; 900->2; 901->1; 902->2; 903->1; 904->1; 905->2; 906->1; 907->1; 908->1; 909->1; 910->1; 911->0; 912->1; 913->0; 914->0; 915->1; 916->0; 917->0; 918->0; 919->0; 920->2; 921->1; 922->2; 923->1; 924->1; 925->2; 926->1; 927->1; 928->1; 929->1; 930->1; 931->0; 932->1; 933->0; 934->0; 935->1; 936->0; 937->0; 938->0; 939->0; 940->1; 941->0; 942->1; 943->0; 944->0; 945->1; 946->0; 947->0; 948->0; 949->0; 950->2; 951->1; 952->2; 953->1; 954->1; 955->2; 956->1; 957->1; 958->1; 959->1; 960->1; 961->0; 962->1; 963->0; 964->0; 965->1; 966->0; 967->0; 968->0; 969->0; 970->1; 971->0; 972->1; 973->0; 974->0; 975->1; 976->0; 977->0; 978->0; 979->0; 980->1; 981->0; 982->1; 983->0; 984->0; 985->1; 986->0; 987->0; 988->0; 989->0; 990->1; 991->0; 992->1; 993->0; 994->0; 995->1; 996->0; 997->0; 998->0; 999->0 }
  Correct_Position = { 0->1; 1->1; 2->2; 3->1; 4->1; 5->1; 6->1; 7->1; 8->1; 9->1; 10->1; 11->1; 12->2; 13->1; 14->1; 15->1; 16->1; 17->1; 18->1; 19->1; 20->1; 21->1; 22->2; 23->1; 24->1; 25->1; 26->1; 27->1; 28->1; 29->1; 30->1; 31->1; 32->2; 33->1; 34->1; 35->1; 36->1; 37->1; 38->1; 39->1; 40->1; 41->1; 42->2; 43->1; 44->1; 45->1; 46->1; 47->1; 48->1; 49->1; 50->2; 51->2; 52->3; 53->2; 54->2; 55->2; 56->2; 57->2; 58->2; 59->2; 60->1; 61->1; 62->2; 63->1; 64->1; 65->1; 66->1; 67->1; 68->1; 69->1; 70->1; 71->1; 72->2; 73->1; 74->1; 75->1; 76->1; 77->1; 78->1; 79->1; 80->1; 81->1; 82->2; 83->1; 84->1; 85->1; 86->1; 87->1; 88->1; 89->1; 90->1; 91->1; 92->2; 93->1; 94->1; 95->1; 96->1; 97->1; 98->1; 99->1; 100->0; 101->0; 102->1; 103->0; 104->0; 105->0; 106->0; 107->0; 108->0; 109->0; 110->0; 111->0; 112->1; 113->0; 114->0; 115->0; 116->0; 117->0; 118->0; 119->0; 120->0; 121->0; 122->1; 123->0; 124->0; 125->0; 126->0; 127->0; 128->0; 129->0; 130->0; 131->0; 132->1; 133->0; 134->0; 135->0; 136->0; 137->0; 138->0; 139->0; 140->0; 141->0; 142->1; 143->0; 144->0; 145->0; 146->0; 147->0; 148->0; 149->0; 150->1; 151->1; 152->2; 153->1; 154->1; 155->1; 156->1; 157->1; 158->1; 159->1; 160->0; 161->0; 162->1; 163->0; 164->0; 165->0; 166->0; 167->0; 168->0; 169->0; 170->0; 171->0; 172->1; 173->0; 174->0; 175->0; 176->0; 177->0; 178->0; 179->0; 180->0; 181->0; 182->1; 183->0; 184->0; 185->0; 186->0; 187->0; 188->0; 189->0; 190->0; 191->0; 192->1; 193->0; 194->0; 195->0; 196->0; 197->0; 198->0; 199->0; 200->0; 201->0; 202->1; 203->0; 204->0; 205->0; 206->0; 207->0; 208->0; 209->0; 210->0; 211->0; 212->1; 213->0; 214->0; 215->0; 216->0; 217->0; 218->0; 219->0; 220->0; 221->0; 222->1; 223->0; 224->0; 225->0; 226->0; 227->0; 228->0; 229->0; 230->0; 231->0; 232->1; 233->0; 234->0; 235->0; 236->0; 237->0; 238->0; 239->0; 240->0; 241->0; 242->1; 243->0; 244->0; 245->0; 246->0; 247->0; 248->0; 249->0; 250->1; 251->1; 252->2; 253->1; 254->1; 255->1; 256->1; 257->1; 258->1; 259->1; 260->0; 261->0; 262->1; 263->0; 264->0; 265->0; 266->0; 267->0; 268->0; 269->0; 270->0; 271->0; 272->1; 273->0; 274->0; 275->0; 276->0; 277->0; 278->0; 279->0; 280->0; 281->0; 282->1; 283->0; 284->0; 285->0; 286->0; 287->0; 288->0; 289->0; 290->0; 291->0; 292->1; 293->0; 294->0; 295->0; 296->0; 297->0; 298->0; 299->0; 300->0; 301->0; 302->1; 303->0; 304->0; 305->0; 306->0; 307->0; 308->0; 309->0; 310->0; 311->0; 312->1; 313->0; 314->0; 315->0; 316->0; 317->0; 318->0; 319->0; 320->0; 321->0; 322->1; 323->0; 324->0; 325->0; 326->0; 327->0; 328->0; 329->0; 330->0; 331->0; 332->1; 333->0; 334->0; 335->0; 336->0; 337->0; 338->0; 339->0; 340->0; 341->0; 342->1; 343->0; 344->0; 345->0; 346->0; 347->0; 348->0; 349->0; 350->1; 351->1; 352->2; 353->1; 354->1; 355->1; 356->1; 357->1; 358->1; 359->1; 360->0; 361->0; 362->1; 363->0; 364->0; 365->0; 366->0; 367->0; 368->0; 369->0; 370->0; 371->0; 372->1; 373->0; 374->0; 375->0; 376->0; 377->0; 378->0; 379->0; 380->0; 381->0; 382->1; 383->0; 384->0; 385->0; 386->0; 387->0; 388->0; 389->0; 390->0; 391->0; 392->1; 393->0; 394->0; 395->0; 396->0; 397->0; 398->0; 399->0; 400->0; 401->0; 402->1; 403->0; 404->0; 405->0; 406->0; 407->0; 408->0; 409->0; 410->0; 411->0; 412->1; 413->0; 414->0; 415->0; 416->0; 417->0; 418->0; 419->0; 420->0; 421->0; 422->1; 423->0; 424->0; 425->0; 426->0; 427->0; 428->0; 429->0; 430->0; 431->0; 432->1; 433->0; 434->0; 435->0; 436->0; 437->0; 438->0; 439->0; 440->0; 441->0; 442->1; 443->0; 444->0; 445->0; 446->0; 447->0; 448->0; 449->0; 450->1; 451->1; 452->2; 453->1; 454->1; 455->1; 456->1; 457->1; 458->1; 459->1; 460->0; 461->0; 462->1; 463->0; 464->0; 465->0; 466->0; 467->0; 468->0; 469->0; 470->0; 471->0; 472->1; 473->0; 474->0; 475->0; 476->0; 477->0; 478->0; 479->0; 480->0; 481->0; 482->1; 483->0; 484->0; 485->0; 486->0; 487->0; 488->0; 489->0; 490->0; 491->0; 492->1; 493->0; 494->0; 495->0; 496->0; 497->0; 498->0; 499->0; 500->0; 501->0; 502->1; 503->0; 504->0; 505->0; 506->0; 507->0; 508->0; 509->0; 510->0; 511->0; 512->1; 513->0; 514->0; 515->0; 516->0; 517->0; 518->0; 519->0; 520->0; 521->0; 522->1; 523->0; 524->0; 525->0; 526->0; 527->0; 528->0; 529->0; 530->0; 531->0; 532->1; 533->0; 534->0; 535->0; 536->0; 537->0; 538->0; 539->0; 540->0; 541->0; 542->1; 543->0; 544->0; 545->0; 546->0; 547->0; 548->0; 549->0; 550->1; 551->1; 552->2; 553->1; 554->1; 555->1; 556->1; 557->1; 558->1; 559->1; 560->0; 561->0; 562->1; 563->0; 564->0; 565->0; 566->0; 567->0; 568->0; 569->0; 570->0; 571->0; 572->1; 573->0; 574->0; 575->0; 576->0; 577->0; 578->0; 579->0; 580->0; 581->0; 582->1; 583->0; 584->0; 585->0; 586->0; 587->0; 588->0; 589->0; 590->0; 591->0; 592->1; 593->0; 594->0; 595->0; 596->0; 597->0; 598->0; 599->0; 600->0; 601->0; 602->1; 603->0; 604->0; 605->0; 606->0; 607->0; 608->0; 609->0; 610->0; 611->0; 612->1; 613->0; 614->0; 615->0; 616->0; 617->0; 618->0; 619->0; 620->0; 621->0; 622->1; 623->0; 624->0; 625->0; 626->0; 627->0; 628->0; 629->0; 630->0; 631->0; 632->1; 633->0; 634->0; 635->0; 636->0; 637->0; 638->0; 639->0; 640->0; 641->0; 642->1; 643->0; 644->0; 645->0; 646->0; 647->0; 648->0; 649->0; 650->1; 651->1; 652->2; 653->1; 654->1; 655->1; 656->1; 657->1; 658->1; 659->1; 660->0; 661->0; 662->1; 663->0; 664->0; 665->0; 666->0; 667->0; 668->0; 669->0; 670->0; 671->0; 672->1; 673->0; 674->0; 675->0; 676->0; 677->0; 678->0; 679->0; 680->0; 681->0; 682->1; 683->0; 684->0; 685->0; 686->0; 687->0; 688->0; 689->0; 690->0; 691->0; 692->1; 693->0; 694->0; 695->0; 696->0; 697->0; 698->0; 699->0; 700->0; 701->0; 702->1; 703->0; 704->0; 705->0; 706->0; 707->0; 708->0; 709->0; 710->0; 711->0; 712->1; 713->0; 714->0; 715->0; 716->0; 717->0; 718->0; 719->0; 720->0; 721->0; 722->1; 723->0; 724->0; 725->0; 726->0; 727->0; 728->0; 729->0; 730->0; 731->0; 732->1; 733->0; 734->0; 735->0; 736->0; 737->0; 738->0; 739->0; 740->0; 741->0; 742->1; 743->0; 744->0; 745->0; 746->0; 747->0; 748->0; 749->0; 750->1; 751->1; 752->2; 753->1; 754->1; 755->1; 756->1; 757->1; 758->1; 759->1; 760->0; 761->0; 762->1; 763->0; 764->0; 765->0; 766->0; 767->0; 768->0; 769->0; 770->0; 771->0; 772->1; 773->0; 774->0; 775->0; 776->0; 777->0; 778->0; 779->0; 780->0; 781->0; 782->1; 783->0; 784->0; 785->0; 786->0; 787->0; 788->0; 789->0; 790->0; 791->0; 792->1; 793->0; 794->0; 795->0; 796->0; 797->0; 798->0; 799->0; 800->0; 801->0; 802->1; 803->0; 804->0; 805->0; 806->0; 807->0; 808->0; 809->0; 810->0; 811->0; 812->1; 813->0; 814->0; 815->0; 816->0; 817->0; 818->0; 819->0; 820->0; 821->0; 822->1; 823->0; 824->0; 825->0; 826->0; 827->0; 828->0; 829->0; 830->0; 831->0; 832->1; 833->0; 834->0; 835->0; 836->0; 837->0; 838->0; 839->0; 840->0; 841->0; 842->1; 843->0; 844->0; 845->0; 846->0; 847->0; 848->0; 849->0; 850->1; 851->1; 852->2; 853->1; 854->1; 855->1; 856->1; 857->1; 858->1; 859->1; 860->0; 861->0; 862->1; 863->0; 864->0; 865->0; 866->0; 867->0; 868->0; 869->0; 870->0; 871->0; 872->1; 873->0; 874->0; 875->0; 876->0; 877->0; 878->0; 879->0; 880->0; 881->0; 882->1; 883->0; 884->0; 885->0; 886->0; 887->0; 888->0; 889->0; 890->0; 891->0; 892->1; 893->0; 894->0; 895->0; 896->0; 897->0; 898->0; 899->0; 900->0; 901->0; 902->1; 903->0; 904->0; 905->0; 906->0; 907->0; 908->0; 909->0; 910->0; 911->0; 912->1; 913->0; 914->0; 915->0; 916->0; 917->0; 918->0; 919->0; 920->0; 921->0; 922->1; 923->0; 924->0; 925->0; 926->0; 927->0; 928->0; 929->0; 930->0; 931->0; 932->1; 933->0; 934->0; 935->0; 936->0; 937->0; 938->0; 939->0; 940->0; 941->0; 942->1; 943->0; 944->0; 945->0; 946->0; 947->0; 948->0; 949->0; 950->1; 951->1; 952->2; 953->1; 954->1; 955->1; 956->1; 957->1; 958->1; 959->1; 960->0; 961->0; 962->1; 963->0; 964->0; 965->0; 966->0; 967->0; 968->0; 969->0; 970->0; 971->0; 972->1; 973->0; 974->0; 975->0; 976->0; 977->0; 978->0; 979->0; 980->0; 981->0; 982->1; 983->0; 984->0; 985->0; 986->0; 987->0; 988->0; 989->0; 990->0; 991->0; 992->1; 993->0; 994->0; 995->0; 996->0; 997->0; 998->0; 999->0 }
  Hundreds = { 0->0; 1->0; 2->0; 3->0; 4->0; 5->0; 6->0; 7->0; 8->0; 9->0; 10->0; 11->0; 12->0; 13->0; 14->0; 15->0; 16->0; 17->0; 18->0; 19->0; 20->0; 21->0; 22->0; 23->0; 24->0; 25->0; 26->0; 27->0; 28->0; 29->0; 30->0; 31->0; 32->0; 33->0; 34->0; 35->0; 36->0; 37->0; 38->0; 39->0; 40->0; 41->0; 42->0; 43->0; 44->0; 45->0; 46->0; 47->0; 48->0; 49->0; 50->0; 51->0; 52->0; 53->0; 54->0; 55->0; 56->0; 57->0; 58->0; 59->0; 60->0; 61->0; 62->0; 63->0; 64->0; 65->0; 66->0; 67->0; 68->0; 69->0; 70->0; 71->0; 72->0; 73->0; 74->0; 75->0; 76->0; 77->0; 78->0; 79->0; 80->0; 81->0; 82->0; 83->0; 84->0; 85->0; 86->0; 87->0; 88->0; 89->0; 90->0; 91->0; 92->0; 93->0; 94->0; 95->0; 96->0; 97->0; 98->0; 99->0; 100->1; 101->1; 102->1; 103->1; 104->1; 105->1; 106->1; 107->1; 108->1; 109->1; 110->1; 111->1; 112->1; 113->1; 114->1; 115->1; 116->1; 117->1; 118->1; 119->1; 120->1; 121->1; 122->1; 123->1; 124->1; 125->1; 126->1; 127->1; 128->1; 129->1; 130->1; 131->1; 132->1; 133->1; 134->1; 135->1; 136->1; 137->1; 138->1; 139->1; 140->1; 141->1; 142->1; 143->1; 144->1; 145->1; 146->1; 147->1; 148->1; 149->1; 150->1; 151->1; 152->1; 153->1; 154->1; 155->1; 156->1; 157->1; 158->1; 159->1; 160->1; 161->1; 162->1; 163->1; 164->1; 165->1; 166->1; 167->1; 168->1; 169->1; 170->1; 171->1; 172->1; 173->1; 174->1; 175->1; 176->1; 177->1; 178->1; 179->1; 180->1; 181->1; 182->1; 183->1; 184->1; 185->1; 186->1; 187->1; 188->1; 189->1; 190->1; 191->1; 192->1; 193->1; 194->1; 195->1; 196->1; 197->1; 198->1; 199->1; 200->2; 201->2; 202->2; 203->2; 204->2; 205->2; 206->2; 207->2; 208->2; 209->2; 210->2; 211->2; 212->2; 213->2; 214->2; 215->2; 216->2; 217->2; 218->2; 219->2; 220->2; 221->2; 222->2; 223->2; 224->2; 225->2; 226->2; 227->2; 228->2; 229->2; 230->2; 231->2; 232->2; 233->2; 234->2; 235->2; 236->2; 237->2; 238->2; 239->2; 240->2; 241->2; 242->2; 243->2; 244->2; 245->2; 246->2; 247->2; 248->2; 249->2; 250->2; 251->2; 252->2; 253->2; 254->2; 255->2; 256->2; 257->2; 258->2; 259->2; 260->2; 261->2; 262->2; 263->2; 264->2; 265->2; 266->2; 267->2; 268->2; 269->2; 270->2; 271->2; 272->2; 273->2; 274->2; 275->2; 276->2; 277->2; 278->2; 279->2; 280->2; 281->2; 282->2; 283->2; 284->2; 285->2; 286->2; 287->2; 288->2; 289->2; 290->2; 291->2; 292->2; 293->2; 294->2; 295->2; 296->2; 297->2; 298->2; 299->2; 300->3; 301->3; 302->3; 303->3; 304->3; 305->3; 306->3; 307->3; 308->3; 309->3; 310->3; 311->3; 312->3; 313->3; 314->3; 315->3; 316->3; 317->3; 318->3; 319->3; 320->3; 321->3; 322->3; 323->3; 324->3; 325->3; 326->3; 327->3; 328->3; 329->3; 330->3; 331->3; 332->3; 333->3; 334->3; 335->3; 336->3; 337->3; 338->3; 339->3; 340->3; 341->3; 342->3; 343->3; 344->3; 345->3; 346->3; 347->3; 348->3; 349->3; 350->3; 351->3; 352->3; 353->3; 354->3; 355->3; 356->3; 357->3; 358->3; 359->3; 360->3; 361->3; 362->3; 363->3; 364->3; 365->3; 366->3; 367->3; 368->3; 369->3; 370->3; 371->3; 372->3; 373->3; 374->3; 375->3; 376->3; 377->3; 378->3; 379->3; 380->3; 381->3; 382->3; 383->3; 384->3; 385->3; 386->3; 387->3; 388->3; 389->3; 390->3; 391->3; 392->3; 393->3; 394->3; 395->3; 396->3; 397->3; 398->3; 399->3; 400->4; 401->4; 402->4; 403->4; 404->4; 405->4; 406->4; 407->4; 408->4; 409->4; 410->4; 411->4; 412->4; 413->4; 414->4; 415->4; 416->4; 417->4; 418->4; 419->4; 420->4; 421->4; 422->4; 423->4; 424->4; 425->4; 426->4; 427->4; 428->4; 429->4; 430->4; 431->4; 432->4; 433->4; 434->4; 435->4; 436->4; 437->4; 438->4; 439->4; 440->4; 441->4; 442->4; 443->4; 444->4; 445->4; 446->4; 447->4; 448->4; 449->4; 450->4; 451->4; 452->4; 453->4; 454->4; 455->4; 456->4; 457->4; 458->4; 459->4; 460->4; 461->4; 462->4; 463->4; 464->4; 465->4; 466->4; 467->4; 468->4; 469->4; 470->4; 471->4; 472->4; 473->4; 474->4; 475->4; 476->4; 477->4; 478->4; 479->4; 480->4; 481->4; 482->4; 483->4; 484->4; 485->4; 486->4; 487->4; 488->4; 489->4; 490->4; 491->4; 492->4; 493->4; 494->4; 495->4; 496->4; 497->4; 498->4; 499->4; 500->5; 501->5; 502->5; 503->5; 504->5; 505->5; 506->5; 507->5; 508->5; 509->5; 510->5; 511->5; 512->5; 513->5; 514->5; 515->5; 516->5; 517->5; 518->5; 519->5; 520->5; 521->5; 522->5; 523->5; 524->5; 525->5; 526->5; 527->5; 528->5; 529->5; 530->5; 531->5; 532->5; 533->5; 534->5; 535->5; 536->5; 537->5; 538->5; 539->5; 540->5; 541->5; 542->5; 543->5; 544->5; 545->5; 546->5; 547->5; 548->5; 549->5; 550->5; 551->5; 552->5; 553->5; 554->5; 555->5; 556->5; 557->5; 558->5; 559->5; 560->5; 561->5; 562->5; 563->5; 564->5; 565->5; 566->5; 567->5; 568->5; 569->5; 570->5; 571->5; 572->5; 573->5; 574->5; 575->5; 576->5; 577->5; 578->5; 579->5; 580->5; 581->5; 582->5; 583->5; 584->5; 585->5; 586->5; 587->5; 588->5; 589->5; 590->5; 591->5; 592->5; 593->5; 594->5; 595->5; 596->5; 597->5; 598->5; 599->5; 600->6; 601->6; 602->6; 603->6; 604->6; 605->6; 606->6; 607->6; 608->6; 609->6; 610->6; 611->6; 612->6; 613->6; 614->6; 615->6; 616->6; 617->6; 618->6; 619->6; 620->6; 621->6; 622->6; 623->6; 624->6; 625->6; 626->6; 627->6; 628->6; 629->6; 630->6; 631->6; 632->6; 633->6; 634->6; 635->6; 636->6; 637->6; 638->6; 639->6; 640->6; 641->6; 642->6; 643->6; 644->6; 645->6; 646->6; 647->6; 648->6; 649->6; 650->6; 651->6; 652->6; 653->6; 654->6; 655->6; 656->6; 657->6; 658->6; 659->6; 660->6; 661->6; 662->6; 663->6; 664->6; 665->6; 666->6; 667->6; 668->6; 669->6; 670->6; 671->6; 672->6; 673->6; 674->6; 675->6; 676->6; 677->6; 678->6; 679->6; 680->6; 681->6; 682->6; 683->6; 684->6; 685->6; 686->6; 687->6; 688->6; 689->6; 690->6; 691->6; 692->6; 693->6; 694->6; 695->6; 696->6; 697->6; 698->6; 699->6; 700->7; 701->7; 702->7; 703->7; 704->7; 705->7; 706->7; 707->7; 708->7; 709->7; 710->7; 711->7; 712->7; 713->7; 714->7; 715->7; 716->7; 717->7; 718->7; 719->7; 720->7; 721->7; 722->7; 723->7; 724->7; 725->7; 726->7; 727->7; 728->7; 729->7; 730->7; 731->7; 732->7; 733->7; 734->7; 735->7; 736->7; 737->7; 738->7; 739->7; 740->7; 741->7; 742->7; 743->7; 744->7; 745->7; 746->7; 747->7; 748->7; 749->7; 750->7; 751->7; 752->7; 753->7; 754->7; 755->7; 756->7; 757->7; 758->7; 759->7; 760->7; 761->7; 762->7; 763->7; 764->7; 765->7; 766->7; 767->7; 768->7; 769->7; 770->7; 771->7; 772->7; 773->7; 774->7; 775->7; 776->7; 777->7; 778->7; 779->7; 780->7; 781->7; 782->7; 783->7; 784->7; 785->7; 786->7; 787->7; 788->7; 789->7; 790->7; 791->7; 792->7; 793->7; 794->7; 795->7; 796->7; 797->7; 798->7; 799->7; 800->8; 801->8; 802->8; 803->8; 804->8; 805->8; 806->8; 807->8; 808->8; 809->8; 810->8; 811->8; 812->8; 813->8; 814->8; 815->8; 816->8; 817->8; 818->8; 819->8; 820->8; 821->8; 822->8; 823->8; 824->8; 825->8; 826->8; 827->8; 828->8; 829->8; 830->8; 831->8; 832->8; 833->8; 834->8; 835->8; 836->8; 837->8; 838->8; 839->8; 840->8; 841->8; 842->8; 843->8; 844->8; 845->8; 846->8; 847->8; 848->8; 849->8; 850->8; 851->8; 852->8; 853->8; 854->8; 855->8; 856->8; 857->8; 858->8; 859->8; 860->8; 861->8; 862->8; 863->8; 864->8; 865->8; 866->8; 867->8; 868->8; 869->8; 870->8; 871->8; 872->8; 873->8; 874->8; 875->8; 876->8; 877->8; 878->8; 879->8; 880->8; 881->8; 882->8; 883->8; 884->8; 885->8; 886->8; 887->8; 888->8; 889->8; 890->8; 891->8; 892->8; 893->8; 894->8; 895->8; 896->8; 897->8; 898->8; 899->8; 900->9; 901->9; 902->9; 903->9; 904->9; 905->9; 906->9; 907->9; 908->9; 909->9; 910->9; 911->9; 912->9; 913->9; 914->9; 915->9; 916->9; 917->9; 918->9; 919->9; 920->9; 921->9; 922->9; 923->9; 924->9; 925->9; 926->9; 927->9; 928->9; 929->9; 930->9; 931->9; 932->9; 933->9; 934->9; 935->9; 936->9; 937->9; 938->9; 939->9; 940->9; 941->9; 942->9; 943->9; 944->9; 945->9; 946->9; 947->9; 948->9; 949->9; 950->9; 951->9; 952->9; 953->9; 954->9; 955->9; 956->9; 957->9; 958->9; 959->9; 960->9; 961->9; 962->9; 963->9; 964->9; 965->9; 966->9; 967->9; 968->9; 969->9; 970->9; 971->9; 972->9; 973->9; 974->9; 975->9; 976->9; 977->9; 978->9; 979->9; 980->9; 981->9; 982->9; 983->9; 984->9; 985->9; 986->9; 987->9; 988->9; 989->9; 990->9; 991->9; 992->9; 993->9; 994->9; 995->9; 996->9; 997->9; 998->9; 999->9 }
  Sol1 = 2
  Sol2 = 5
  Sol3 = 0
  Solution = 52
  Tens = { 0->0; 1->0; 2->0; 3->0; 4->0; 5->0; 6->0; 7->0; 8->0; 9->0; 10->1; 11->1; 12->1; 13->1; 14->1; 15->1; 16->1; 17->1; 18->1; 19->1; 20->2; 21->2; 22->2; 23->2; 24->2; 25->2; 26->2; 27->2; 28->2; 29->2; 30->3; 31->3; 32->3; 33->3; 34->3; 35->3; 36->3; 37->3; 38->3; 39->3; 40->4; 41->4; 42->4; 43->4; 44->4; 45->4; 46->4; 47->4; 48->4; 49->4; 50->5; 51->5; 52->5; 53->5; 54->5; 55->5; 56->5; 57->5; 58->5; 59->5; 60->6; 61->6; 62->6; 63->6; 64->6; 65->6; 66->6; 67->6; 68->6; 69->6; 70->7; 71->7; 72->7; 73->7; 74->7; 75->7; 76->7; 77->7; 78->7; 79->7; 80->8; 81->8; 82->8; 83->8; 84->8; 85->8; 86->8; 87->8; 88->8; 89->8; 90->9; 91->9; 92->9; 93->9; 94->9; 95->9; 96->9; 97->9; 98->9; 99->9; 100->0; 101->0; 102->0; 103->0; 104->0; 105->0; 106->0; 107->0; 108->0; 109->0; 110->1; 111->1; 112->1; 113->1; 114->1; 115->1; 116->1; 117->1; 118->1; 119->1; 120->2; 121->2; 122->2; 123->2; 124->2; 125->2; 126->2; 127->2; 128->2; 129->2; 130->3; 131->3; 132->3; 133->3; 134->3; 135->3; 136->3; 137->3; 138->3; 139->3; 140->4; 141->4; 142->4; 143->4; 144->4; 145->4; 146->4; 147->4; 148->4; 149->4; 150->5; 151->5; 152->5; 153->5; 154->5; 155->5; 156->5; 157->5; 158->5; 159->5; 160->6; 161->6; 162->6; 163->6; 164->6; 165->6; 166->6; 167->6; 168->6; 169->6; 170->7; 171->7; 172->7; 173->7; 174->7; 175->7; 176->7; 177->7; 178->7; 179->7; 180->8; 181->8; 182->8; 183->8; 184->8; 185->8; 186->8; 187->8; 188->8; 189->8; 190->9; 191->9; 192->9; 193->9; 194->9; 195->9; 196->9; 197->9; 198->9; 199->9; 200->0; 201->0; 202->0; 203->0; 204->0; 205->0; 206->0; 207->0; 208->0; 209->0; 210->1; 211->1; 212->1; 213->1; 214->1; 215->1; 216->1; 217->1; 218->1; 219->1; 220->2; 221->2; 222->2; 223->2; 224->2; 225->2; 226->2; 227->2; 228->2; 229->2; 230->3; 231->3; 232->3; 233->3; 234->3; 235->3; 236->3; 237->3; 238->3; 239->3; 240->4; 241->4; 242->4; 243->4; 244->4; 245->4; 246->4; 247->4; 248->4; 249->4; 250->5; 251->5; 252->5; 253->5; 254->5; 255->5; 256->5; 257->5; 258->5; 259->5; 260->6; 261->6; 262->6; 263->6; 264->6; 265->6; 266->6; 267->6; 268->6; 269->6; 270->7; 271->7; 272->7; 273->7; 274->7; 275->7; 276->7; 277->7; 278->7; 279->7; 280->8; 281->8; 282->8; 283->8; 284->8; 285->8; 286->8; 287->8; 288->8; 289->8; 290->9; 291->9; 292->9; 293->9; 294->9; 295->9; 296->9; 297->9; 298->9; 299->9; 300->0; 301->0; 302->0; 303->0; 304->0; 305->0; 306->0; 307->0; 308->0; 309->0; 310->1; 311->1; 312->1; 313->1; 314->1; 315->1; 316->1; 317->1; 318->1; 319->1; 320->2; 321->2; 322->2; 323->2; 324->2; 325->2; 326->2; 327->2; 328->2; 329->2; 330->3; 331->3; 332->3; 333->3; 334->3; 335->3; 336->3; 337->3; 338->3; 339->3; 340->4; 341->4; 342->4; 343->4; 344->4; 345->4; 346->4; 347->4; 348->4; 349->4; 350->5; 351->5; 352->5; 353->5; 354->5; 355->5; 356->5; 357->5; 358->5; 359->5; 360->6; 361->6; 362->6; 363->6; 364->6; 365->6; 366->6; 367->6; 368->6; 369->6; 370->7; 371->7; 372->7; 373->7; 374->7; 375->7; 376->7; 377->7; 378->7; 379->7; 380->8; 381->8; 382->8; 383->8; 384->8; 385->8; 386->8; 387->8; 388->8; 389->8; 390->9; 391->9; 392->9; 393->9; 394->9; 395->9; 396->9; 397->9; 398->9; 399->9; 400->0; 401->0; 402->0; 403->0; 404->0; 405->0; 406->0; 407->0; 408->0; 409->0; 410->1; 411->1; 412->1; 413->1; 414->1; 415->1; 416->1; 417->1; 418->1; 419->1; 420->2; 421->2; 422->2; 423->2; 424->2; 425->2; 426->2; 427->2; 428->2; 429->2; 430->3; 431->3; 432->3; 433->3; 434->3; 435->3; 436->3; 437->3; 438->3; 439->3; 440->4; 441->4; 442->4; 443->4; 444->4; 445->4; 446->4; 447->4; 448->4; 449->4; 450->5; 451->5; 452->5; 453->5; 454->5; 455->5; 456->5; 457->5; 458->5; 459->5; 460->6; 461->6; 462->6; 463->6; 464->6; 465->6; 466->6; 467->6; 468->6; 469->6; 470->7; 471->7; 472->7; 473->7; 474->7; 475->7; 476->7; 477->7; 478->7; 479->7; 480->8; 481->8; 482->8; 483->8; 484->8; 485->8; 486->8; 487->8; 488->8; 489->8; 490->9; 491->9; 492->9; 493->9; 494->9; 495->9; 496->9; 497->9; 498->9; 499->9; 500->0; 501->0; 502->0; 503->0; 504->0; 505->0; 506->0; 507->0; 508->0; 509->0; 510->1; 511->1; 512->1; 513->1; 514->1; 515->1; 516->1; 517->1; 518->1; 519->1; 520->2; 521->2; 522->2; 523->2; 524->2; 525->2; 526->2; 527->2; 528->2; 529->2; 530->3; 531->3; 532->3; 533->3; 534->3; 535->3; 536->3; 537->3; 538->3; 539->3; 540->4; 541->4; 542->4; 543->4; 544->4; 545->4; 546->4; 547->4; 548->4; 549->4; 550->5; 551->5; 552->5; 553->5; 554->5; 555->5; 556->5; 557->5; 558->5; 559->5; 560->6; 561->6; 562->6; 563->6; 564->6; 565->6; 566->6; 567->6; 568->6; 569->6; 570->7; 571->7; 572->7; 573->7; 574->7; 575->7; 576->7; 577->7; 578->7; 579->7; 580->8; 581->8; 582->8; 583->8; 584->8; 585->8; 586->8; 587->8; 588->8; 589->8; 590->9; 591->9; 592->9; 593->9; 594->9; 595->9; 596->9; 597->9; 598->9; 599->9; 600->0; 601->0; 602->0; 603->0; 604->0; 605->0; 606->0; 607->0; 608->0; 609->0; 610->1; 611->1; 612->1; 613->1; 614->1; 615->1; 616->1; 617->1; 618->1; 619->1; 620->2; 621->2; 622->2; 623->2; 624->2; 625->2; 626->2; 627->2; 628->2; 629->2; 630->3; 631->3; 632->3; 633->3; 634->3; 635->3; 636->3; 637->3; 638->3; 639->3; 640->4; 641->4; 642->4; 643->4; 644->4; 645->4; 646->4; 647->4; 648->4; 649->4; 650->5; 651->5; 652->5; 653->5; 654->5; 655->5; 656->5; 657->5; 658->5; 659->5; 660->6; 661->6; 662->6; 663->6; 664->6; 665->6; 666->6; 667->6; 668->6; 669->6; 670->7; 671->7; 672->7; 673->7; 674->7; 675->7; 676->7; 677->7; 678->7; 679->7; 680->8; 681->8; 682->8; 683->8; 684->8; 685->8; 686->8; 687->8; 688->8; 689->8; 690->9; 691->9; 692->9; 693->9; 694->9; 695->9; 696->9; 697->9; 698->9; 699->9; 700->0; 701->0; 702->0; 703->0; 704->0; 705->0; 706->0; 707->0; 708->0; 709->0; 710->1; 711->1; 712->1; 713->1; 714->1; 715->1; 716->1; 717->1; 718->1; 719->1; 720->2; 721->2; 722->2; 723->2; 724->2; 725->2; 726->2; 727->2; 728->2; 729->2; 730->3; 731->3; 732->3; 733->3; 734->3; 735->3; 736->3; 737->3; 738->3; 739->3; 740->4; 741->4; 742->4; 743->4; 744->4; 745->4; 746->4; 747->4; 748->4; 749->4; 750->5; 751->5; 752->5; 753->5; 754->5; 755->5; 756->5; 757->5; 758->5; 759->5; 760->6; 761->6; 762->6; 763->6; 764->6; 765->6; 766->6; 767->6; 768->6; 769->6; 770->7; 771->7; 772->7; 773->7; 774->7; 775->7; 776->7; 777->7; 778->7; 779->7; 780->8; 781->8; 782->8; 783->8; 784->8; 785->8; 786->8; 787->8; 788->8; 789->8; 790->9; 791->9; 792->9; 793->9; 794->9; 795->9; 796->9; 797->9; 798->9; 799->9; 800->0; 801->0; 802->0; 803->0; 804->0; 805->0; 806->0; 807->0; 808->0; 809->0; 810->1; 811->1; 812->1; 813->1; 814->1; 815->1; 816->1; 817->1; 818->1; 819->1; 820->2; 821->2; 822->2; 823->2; 824->2; 825->2; 826->2; 827->2; 828->2; 829->2; 830->3; 831->3; 832->3; 833->3; 834->3; 835->3; 836->3; 837->3; 838->3; 839->3; 840->4; 841->4; 842->4; 843->4; 844->4; 845->4; 846->4; 847->4; 848->4; 849->4; 850->5; 851->5; 852->5; 853->5; 854->5; 855->5; 856->5; 857->5; 858->5; 859->5; 860->6; 861->6; 862->6; 863->6; 864->6; 865->6; 866->6; 867->6; 868->6; 869->6; 870->7; 871->7; 872->7; 873->7; 874->7; 875->7; 876->7; 877->7; 878->7; 879->7; 880->8; 881->8; 882->8; 883->8; 884->8; 885->8; 886->8; 887->8; 888->8; 889->8; 890->9; 891->9; 892->9; 893->9; 894->9; 895->9; 896->9; 897->9; 898->9; 899->9; 900->0; 901->0; 902->0; 903->0; 904->0; 905->0; 906->0; 907->0; 908->0; 909->0; 910->1; 911->1; 912->1; 913->1; 914->1; 915->1; 916->1; 917->1; 918->1; 919->1; 920->2; 921->2; 922->2; 923->2; 924->2; 925->2; 926->2; 927->2; 928->2; 929->2; 930->3; 931->3; 932->3; 933->3; 934->3; 935->3; 936->3; 937->3; 938->3; 939->3; 940->4; 941->4; 942->4; 943->4; 944->4; 945->4; 946->4; 947->4; 948->4; 949->4; 950->5; 951->5; 952->5; 953->5; 954->5; 955->5; 956->5; 957->5; 958->5; 959->5; 960->6; 961->6; 962->6; 963->6; 964->6; 965->6; 966->6; 967->6; 968->6; 969->6; 970->7; 971->7; 972->7; 973->7; 974->7; 975->7; 976->7; 977->7; 978->7; 979->7; 980->8; 981->8; 982->8; 983->8; 984->8; 985->8; 986->8; 987->8; 988->8; 989->8; 990->9; 991->9; 992->9; 993->9; 994->9; 995->9; 996->9; 997->9; 998->9; 999->9 }
  Units = { 0->0; 1->1; 2->2; 3->3; 4->4; 5->5; 6->6; 7->7; 8->8; 9->9; 10->0; 11->1; 12->2; 13->3; 14->4; 15->5; 16->6; 17->7; 18->8; 19->9; 20->0; 21->1; 22->2; 23->3; 24->4; 25->5; 26->6; 27->7; 28->8; 29->9; 30->0; 31->1; 32->2; 33->3; 34->4; 35->5; 36->6; 37->7; 38->8; 39->9; 40->0; 41->1; 42->2; 43->3; 44->4; 45->5; 46->6; 47->7; 48->8; 49->9; 50->0; 51->1; 52->2; 53->3; 54->4; 55->5; 56->6; 57->7; 58->8; 59->9; 60->0; 61->1; 62->2; 63->3; 64->4; 65->5; 66->6; 67->7; 68->8; 69->9; 70->0; 71->1; 72->2; 73->3; 74->4; 75->5; 76->6; 77->7; 78->8; 79->9; 80->0; 81->1; 82->2; 83->3; 84->4; 85->5; 86->6; 87->7; 88->8; 89->9; 90->0; 91->1; 92->2; 93->3; 94->4; 95->5; 96->6; 97->7; 98->8; 99->9; 100->0; 101->1; 102->2; 103->3; 104->4; 105->5; 106->6; 107->7; 108->8; 109->9; 110->0; 111->1; 112->2; 113->3; 114->4; 115->5; 116->6; 117->7; 118->8; 119->9; 120->0; 121->1; 122->2; 123->3; 124->4; 125->5; 126->6; 127->7; 128->8; 129->9; 130->0; 131->1; 132->2; 133->3; 134->4; 135->5; 136->6; 137->7; 138->8; 139->9; 140->0; 141->1; 142->2; 143->3; 144->4; 145->5; 146->6; 147->7; 148->8; 149->9; 150->0; 151->1; 152->2; 153->3; 154->4; 155->5; 156->6; 157->7; 158->8; 159->9; 160->0; 161->1; 162->2; 163->3; 164->4; 165->5; 166->6; 167->7; 168->8; 169->9; 170->0; 171->1; 172->2; 173->3; 174->4; 175->5; 176->6; 177->7; 178->8; 179->9; 180->0; 181->1; 182->2; 183->3; 184->4; 185->5; 186->6; 187->7; 188->8; 189->9; 190->0; 191->1; 192->2; 193->3; 194->4; 195->5; 196->6; 197->7; 198->8; 199->9; 200->0; 201->1; 202->2; 203->3; 204->4; 205->5; 206->6; 207->7; 208->8; 209->9; 210->0; 211->1; 212->2; 213->3; 214->4; 215->5; 216->6; 217->7; 218->8; 219->9; 220->0; 221->1; 222->2; 223->3; 224->4; 225->5; 226->6; 227->7; 228->8; 229->9; 230->0; 231->1; 232->2; 233->3; 234->4; 235->5; 236->6; 237->7; 238->8; 239->9; 240->0; 241->1; 242->2; 243->3; 244->4; 245->5; 246->6; 247->7; 248->8; 249->9; 250->0; 251->1; 252->2; 253->3; 254->4; 255->5; 256->6; 257->7; 258->8; 259->9; 260->0; 261->1; 262->2; 263->3; 264->4; 265->5; 266->6; 267->7; 268->8; 269->9; 270->0; 271->1; 272->2; 273->3; 274->4; 275->5; 276->6; 277->7; 278->8; 279->9; 280->0; 281->1; 282->2; 283->3; 284->4; 285->5; 286->6; 287->7; 288->8; 289->9; 290->0; 291->1; 292->2; 293->3; 294->4; 295->5; 296->6; 297->7; 298->8; 299->9; 300->0; 301->1; 302->2; 303->3; 304->4; 305->5; 306->6; 307->7; 308->8; 309->9; 310->0; 311->1; 312->2; 313->3; 314->4; 315->5; 316->6; 317->7; 318->8; 319->9; 320->0; 321->1; 322->2; 323->3; 324->4; 325->5; 326->6; 327->7; 328->8; 329->9; 330->0; 331->1; 332->2; 333->3; 334->4; 335->5; 336->6; 337->7; 338->8; 339->9; 340->0; 341->1; 342->2; 343->3; 344->4; 345->5; 346->6; 347->7; 348->8; 349->9; 350->0; 351->1; 352->2; 353->3; 354->4; 355->5; 356->6; 357->7; 358->8; 359->9; 360->0; 361->1; 362->2; 363->3; 364->4; 365->5; 366->6; 367->7; 368->8; 369->9; 370->0; 371->1; 372->2; 373->3; 374->4; 375->5; 376->6; 377->7; 378->8; 379->9; 380->0; 381->1; 382->2; 383->3; 384->4; 385->5; 386->6; 387->7; 388->8; 389->9; 390->0; 391->1; 392->2; 393->3; 394->4; 395->5; 396->6; 397->7; 398->8; 399->9; 400->0; 401->1; 402->2; 403->3; 404->4; 405->5; 406->6; 407->7; 408->8; 409->9; 410->0; 411->1; 412->2; 413->3; 414->4; 415->5; 416->6; 417->7; 418->8; 419->9; 420->0; 421->1; 422->2; 423->3; 424->4; 425->5; 426->6; 427->7; 428->8; 429->9; 430->0; 431->1; 432->2; 433->3; 434->4; 435->5; 436->6; 437->7; 438->8; 439->9; 440->0; 441->1; 442->2; 443->3; 444->4; 445->5; 446->6; 447->7; 448->8; 449->9; 450->0; 451->1; 452->2; 453->3; 454->4; 455->5; 456->6; 457->7; 458->8; 459->9; 460->0; 461->1; 462->2; 463->3; 464->4; 465->5; 466->6; 467->7; 468->8; 469->9; 470->0; 471->1; 472->2; 473->3; 474->4; 475->5; 476->6; 477->7; 478->8; 479->9; 480->0; 481->1; 482->2; 483->3; 484->4; 485->5; 486->6; 487->7; 488->8; 489->9; 490->0; 491->1; 492->2; 493->3; 494->4; 495->5; 496->6; 497->7; 498->8; 499->9; 500->0; 501->1; 502->2; 503->3; 504->4; 505->5; 506->6; 507->7; 508->8; 509->9; 510->0; 511->1; 512->2; 513->3; 514->4; 515->5; 516->6; 517->7; 518->8; 519->9; 520->0; 521->1; 522->2; 523->3; 524->4; 525->5; 526->6; 527->7; 528->8; 529->9; 530->0; 531->1; 532->2; 533->3; 534->4; 535->5; 536->6; 537->7; 538->8; 539->9; 540->0; 541->1; 542->2; 543->3; 544->4; 545->5; 546->6; 547->7; 548->8; 549->9; 550->0; 551->1; 552->2; 553->3; 554->4; 555->5; 556->6; 557->7; 558->8; 559->9; 560->0; 561->1; 562->2; 563->3; 564->4; 565->5; 566->6; 567->7; 568->8; 569->9; 570->0; 571->1; 572->2; 573->3; 574->4; 575->5; 576->6; 577->7; 578->8; 579->9; 580->0; 581->1; 582->2; 583->3; 584->4; 585->5; 586->6; 587->7; 588->8; 589->9; 590->0; 591->1; 592->2; 593->3; 594->4; 595->5; 596->6; 597->7; 598->8; 599->9; 600->0; 601->1; 602->2; 603->3; 604->4; 605->5; 606->6; 607->7; 608->8; 609->9; 610->0; 611->1; 612->2; 613->3; 614->4; 615->5; 616->6; 617->7; 618->8; 619->9; 620->0; 621->1; 622->2; 623->3; 624->4; 625->5; 626->6; 627->7; 628->8; 629->9; 630->0; 631->1; 632->2; 633->3; 634->4; 635->5; 636->6; 637->7; 638->8; 639->9; 640->0; 641->1; 642->2; 643->3; 644->4; 645->5; 646->6; 647->7; 648->8; 649->9; 650->0; 651->1; 652->2; 653->3; 654->4; 655->5; 656->6; 657->7; 658->8; 659->9; 660->0; 661->1; 662->2; 663->3; 664->4; 665->5; 666->6; 667->7; 668->8; 669->9; 670->0; 671->1; 672->2; 673->3; 674->4; 675->5; 676->6; 677->7; 678->8; 679->9; 680->0; 681->1; 682->2; 683->3; 684->4; 685->5; 686->6; 687->7; 688->8; 689->9; 690->0; 691->1; 692->2; 693->3; 694->4; 695->5; 696->6; 697->7; 698->8; 699->9; 700->0; 701->1; 702->2; 703->3; 704->4; 705->5; 706->6; 707->7; 708->8; 709->9; 710->0; 711->1; 712->2; 713->3; 714->4; 715->5; 716->6; 717->7; 718->8; 719->9; 720->0; 721->1; 722->2; 723->3; 724->4; 725->5; 726->6; 727->7; 728->8; 729->9; 730->0; 731->1; 732->2; 733->3; 734->4; 735->5; 736->6; 737->7; 738->8; 739->9; 740->0; 741->1; 742->2; 743->3; 744->4; 745->5; 746->6; 747->7; 748->8; 749->9; 750->0; 751->1; 752->2; 753->3; 754->4; 755->5; 756->6; 757->7; 758->8; 759->9; 760->0; 761->1; 762->2; 763->3; 764->4; 765->5; 766->6; 767->7; 768->8; 769->9; 770->0; 771->1; 772->2; 773->3; 774->4; 775->5; 776->6; 777->7; 778->8; 779->9; 780->0; 781->1; 782->2; 783->3; 784->4; 785->5; 786->6; 787->7; 788->8; 789->9; 790->0; 791->1; 792->2; 793->3; 794->4; 795->5; 796->6; 797->7; 798->8; 799->9; 800->0; 801->1; 802->2; 803->3; 804->4; 805->5; 806->6; 807->7; 808->8; 809->9; 810->0; 811->1; 812->2; 813->3; 814->4; 815->5; 816->6; 817->7; 818->8; 819->9; 820->0; 821->1; 822->2; 823->3; 824->4; 825->5; 826->6; 827->7; 828->8; 829->9; 830->0; 831->1; 832->2; 833->3; 834->4; 835->5; 836->6; 837->7; 838->8; 839->9; 840->0; 841->1; 842->2; 843->3; 844->4; 845->5; 846->6; 847->7; 848->8; 849->9; 850->0; 851->1; 852->2; 853->3; 854->4; 855->5; 856->6; 857->7; 858->8; 859->9; 860->0; 861->1; 862->2; 863->3; 864->4; 865->5; 866->6; 867->7; 868->8; 869->9; 870->0; 871->1; 872->2; 873->3; 874->4; 875->5; 876->6; 877->7; 878->8; 879->9; 880->0; 881->1; 882->2; 883->3; 884->4; 885->5; 886->6; 887->7; 888->8; 889->9; 890->0; 891->1; 892->2; 893->3; 894->4; 895->5; 896->6; 897->7; 898->8; 899->9; 900->0; 901->1; 902->2; 903->3; 904->4; 905->5; 906->6; 907->7; 908->8; 909->9; 910->0; 911->1; 912->2; 913->3; 914->4; 915->5; 916->6; 917->7; 918->8; 919->9; 920->0; 921->1; 922->2; 923->3; 924->4; 925->5; 926->6; 927->7; 928->8; 929->9; 930->0; 931->1; 932->2; 933->3; 934->4; 935->5; 936->6; 937->7; 938->8; 939->9; 940->0; 941->1; 942->2; 943->3; 944->4; 945->5; 946->6; 947->7; 948->8; 949->9; 950->0; 951->1; 952->2; 953->3; 954->4; 955->5; 956->6; 957->7; 958->8; 959->9; 960->0; 961->1; 962->2; 963->3; 964->4; 965->5; 966->6; 967->7; 968->8; 969->9; 970->0; 971->1; 972->2; 973->3; 974->4; 975->5; 976->6; 977->7; 978->8; 979->9; 980->0; 981->1; 982->2; 983->3; 984->4; 985->5; 986->6; 987->7; 988->8; 989->9; 990->0; 991->1; 992->2; 993->3; 994->4; 995->5; 996->6; 997->7; 998->8; 999->9 }
}

Elapsed Time:
10.521423

The solution to Crack The Code is 052!