/******************************************************************************/ /* */ /* COMPUTE THE MINIMUM ELEMENT IN A LOOP */ /* 04/15/10 (dkc) */ /* */ /* This C program finds the minimum element in a loop. c is set to 1 or -1. */ /* Potential loops are in limbs in S of a least-residue tree. n is the */ /* number of odd elements in the limb. The periods for divisors (d) of n */ /* are; */ /* */ /* d=5, p=13 (or 14) */ /* d=7, p=10 (or 11) */ /* d=12, p=51 (or 52) */ /* d=17, p=18 (or 17) (large period, 17=2*5+7) */ /* d=19, p=8 (or 9) */ /* d=22, p=8 (or 7) */ /* d=26, p=5 (or 4) */ /* d=27, p=5 (or 4) */ /* d=29, p=28 (or 27) (large period, 29=3*5+2*7) */ /* d=31, p=8 (or 7) */ /* d=32, p=3 (or 4) */ /* d=33, p=3 (or 4) */ /* d=37, p=3 (or 2) */ /* d=39, p=5 (or 6) */ /* d=41, p=60 (or 61) (large period, 41=4*5+3*7) */ /* d=43, p=6 (or 7) */ /* d=46, p=10 (or 11) */ /* d=47, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=53, p=? (large) (large period, 53=5*5+4*7) */ /* d=59, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=61, p=3 (or 4) */ /* d=67, p=5 (or 6) */ /* d=69, p=3 (or 2) */ /* d=71, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=73, p=3 (or 4) */ /* d=79, p=5 (or 4) */ /* d=81, p=3 (or 2) */ /* d=83, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=88, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=89, p=16 (or 17) (large period, 89=8*5+7*7) */ /* */ /* Periods for divisors that are multiples of the above divisors are; */ /* */ /* d=10, p=6 (or 7) */ /* d=14, p=5 (or 6) */ /* d=15, p=5 (or 4) */ /* d=20, p=3 (or 4) */ /* d=21, p=3 (or 4) */ /* d=24, p=26 (or 25) */ /* d=25, p=3 (or 2) */ /* d=28, p=3 (or 2) */ /* d=30, p=3 (or 2) */ /* d=34, p=8 (or 9) */ /* d=35, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=36, p=18 (or 17) */ /* d=38, p=4 (or 5) */ /* d=40, p=3 (or 2) */ /* d=42, p=3 (or 2) */ /* d=44, p=4 (or 3) */ /* d=45, p=3 (or 4) */ /* d=48, p=13 (or 12) */ /* d=49, p=3 (or 2) */ /* d=50, p=4 (or 5) */ /* d=51, p=5 (or 6) */ /* d=52, p=3 (or 2) */ /* d=54, p=3 (or 2) */ /* d=55, p=5 (or 6) */ /* d=56, p=4 (or 5) */ /* d=57, p=3 (or 2) */ /* d=58, p=13 (or 14) */ /* d=60, p=11 (or 10) */ /* d=62, p=4 (or 3) */ /* d=63, p=6 (or 7) */ /* d=64, p=3 (or 2) */ /* d=65, p=44 (or ?) (large period, 65=6*5+5*7) */ /* d=66, p=3 (or 2) */ /* d=68, p=4 (or 5) */ /* d=70, p=19 (or ?) */ /* d=72, p=9 (or 8) */ /* d=74, p=3 (or 4) */ /* d=75, p=7 (or 8) */ /* d=76, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=77, p=23 (or 24) (large period, 77=7*5+6*7) */ /* d=78, p=3 (or 2) */ /* d=80, p=4 (or 5) */ /* d=81, p=3 (or 2) */ /* d=82, p=30 (or ?) */ /* d=84, p=7 (or 8) */ /* d=85, p=3 (or 4) */ /* d=86, p=3 (or 4) */ /* d=87, p=9 (or 10) */ /* d=88, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=90, p=3 (or 2) */ /* */ /* Periods where d is not of the form 5x+7y are; */ /* */ /* d=2, p=6 (or 5) */ /* d=3, p=4 (or 5) */ /* d=4, p=3 (or 2) */ /* d=6, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=8, p=3 (or 4) */ /* d=9, p=4 (or 3) */ /* d=11, p=3 (or 2) */ /* d=13, p=3 (or 2) */ /* d=16, p=3 (or 2) */ /* d=18, p=2 (or 3) (sometimes oscillates above or below zero) */ /* d=23, p=3 (or 2) */ /* */ /* When the predominant period is greater than 2, the x values for a given */ /* d value have the general shape of a saw-tooth curve with spikes from */ /* either negative values to positive values or positive values to negative */ /* values. The longest periods (and hence the biggest spikes) occur when d */ /* is of the form 5*k+7*(k-1), k=1, 2, 3, .... */ /* */ /* The x values for prime pairs are of interest. Prime pairs (other than */ /* (3, 5)) can be classified into two types; in one type, the first prime */ /* of the pair is of the form 12*k+5 and in the other type, the first prime */ /* of the pair is of the form 12*k-1. The truncated x values for n=17, 29, */ /* 29, 41, 101, 137, 149, 197, 269, 281, 461, 521, 569, 617, 641, 809, 821, */ /* 857, and 881 are 108, 281, 867, -433, -340, -325, -288, -263, -261, 481, */ /* 770, 1263, 2740, 5699, -1196, -1121, -950, and -868 respectively. The */ /* truncated x values for n=19, 31, 43, 103, 139, 151, 199, 271, 283, 463, */ /* 523, 571, 619, 643, 811, 823, 859, and 883 are -58, -81, -98, -142, -156, */ /* -159, -169, -179, -180, 989, 2809, -14586, -2340, -1705, -695, -673, -617,*/ /* and -587 respectively. The truncated x values for n=11, 59, 71, 107, 179,*/ /* 191, 227, 239, 311, 347, 419, 431, 599, 659, and 827 are -9, -40, -46, */ /* 90, 213, 243, 369, 427, 1408, 6689, -1465, -1259, -529, -466, and 1215 */ /* respectively. The truncated x values for n=13, 61, 73, 109, 181, 193, */ /* 229, 241, 313, 349, 421, 433, 601, 661, and 829 are 11, 66, 85, 158, 516, */ /* 655, 1825, 3482, -1165, -797, -543, -520, -371, 674, and 4353 respect- */ /* ively. */ /* */ /******************************************************************************/ #include <math.h> void addn(unsigned int *a, unsigned int *b, unsigned int n); void negn(unsigned int *a, unsigned int n); void rshiftn(unsigned int *a, unsigned int *b, unsigned int shift, unsigned int n); void lshiftn(unsigned int *a, unsigned int *b, unsigned int shift, unsigned int n); unsigned int normn(unsigned int *a, unsigned int n); unsigned int orn(unsigned int *a, unsigned int n); void copyn(unsigned int *a, unsigned int *b, unsigned int n); void setn(unsigned int *a, unsigned int b, unsigned int n); void div128_64(unsigned int a0, unsigned int a1, unsigned int a2, unsigned int a3, unsigned int *quotient, unsigned int d2, unsigned int d3); far unsigned int A[512],B[512],S[512],T[512],C[4]; far int shift[5166]; // right-shift amounts far int output[5166]; // quotients far int error[2]; // overflow indicator and counter far int d=1; // divisor of n (should be of the form 5x+7y) far unsigned int ab[5166*2]={ // a and b values 0, 1, 0, 2, 1, 2, 1, 3, 2, 3, 2, 4, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 7, 6, 7, 7, 8, 7, 8, 8, 9, 8, 9, 9, 10, 9, 11, 9, 11, 10, 12, 10, 12, 11, 13, 11, 14, 11, 14, 12, 15, 12, 15, 13, 16, 13, 16, 14, 17, 14, 18, 14, 18, 15, 19, 15, 19, 16, 20, 16, 21, 16, 21, 17, 22, 17, 22, 18, 23, 18, 23, 19, 24, 19, 25, 19, 25, 20, 26, 20, 26, 21, 27, 21, 28, 21, 28, 22, 29, 22, 29, 23, 30, 23, 31, 23, 31, 24, 32, 24, 32, 25, 33, 25, 33, 26, 34, 26, 35, 26, 35, 27, 36, 27, 36, 28, 37, 28, 38, 28, 38, 29, 39, 29, 39, 30, 40, 30, 40, 31, 41, 31, 42, 31, 42, 32, 43, 32, 43, 33, 44, 33, 45, 33, 45, 34, 46, 34, 46, 35, 47, 35, 47, 36, 48, 36, 49, 36, 49, 37, 50, 37, 50, 38, 51, 38, 52, 38, 52, 39, 53, 39, 53, 40, 54, 40, 54, 41, 55, 41, 56, 41, 56, 42, 57, 42, 57, 43, 58, 43, 59, 43, 59, 44, 60, 44, 60, 45, 61, 45, 62, 45, 62, 46, 63, 46, 63, 47, 64, 47, 64, 48, 65, 48, 66, 48, 66, 49, 67, 49, 67, 50, 68, 50, 69, 50, 69, 51, 70, 51, 70, 52, 71, 52, 71, 53, 72, 53, 73, 53, 73, 54, 74, 54, 74, 55, 75, 55, 76, 55, 76, 56, 77, 56, 77, 57, 78, 57, 78, 58, 79, 58, 80, 58, 80, 59, 81, 59, 81, 60, 82, 60, 83, 60, 83, 61, 84, 61, 84, 62, 85, 62, 85, 63, 86, 63, 87, 63, 87, 64, 88, 64, 88, 65, 89, 65, 90, 65, 90, 66, 91, 66, 91, 67, 92, 67, 93, 67, 93, 68, 94, 68, 94, 69, 95, 69, 95, 70, 96, 70, 97, 70, 97, 71, 98, 71, 98, 72, 99, 72, 100, 72, 100, 73, 101, 73, 101, 74, 102, 74, 102, 75, 103, 75, 104, 75, 104, 76, 105, 76, 105, 77, 106, 77, 107, 77, 107, 78, 108, 78, 108, 79, 109, 79, 109, 80, 110, 80, 111, 80, 111, 81, 112, 81, 112, 82, 113, 82, 114, 82, 114, 83, 115, 83, 115, 84, 116, 84, 116, 85, 117, 85, 118, 85, 118, 86, 119, 86, 119, 87, 120, 87, 121, 87, 121, 88, 122, 88, 122, 89, 123, 89, 124, 89, 124, 90, 125, 90, 125, 91, 126, 91, 126, 92, 127, 92, 128, 92, 128, 93, 129, 93, 129, 94, 130, 94, 131, 94, 131, 95, 132, 95, 132, 96, 133, 96, 133, 97, 134, 97, 135, 97, 135, 98, 136, 98, 136, 99, 137, 99, 138, 99, 138, 100, 139, 100, 139, 101, 140, 101, 140, 102, 141, 102, 142, 102, 142, 103, 143, 103, 143, 104, 144, 104, 145, 104, 145, 105, 146, 105, 146, 106, 147, 106, 147, 107, 148, 107, 149, 107, 149, 108, 150, 108, 150, 109, 151, 109, 152, 109, 152, 110, 153, 110, 153, 111, 154, 111, 155, 111, 155, 112, 156, 112, 156, 113, 157, 113, 157, 114, 158, 114, 159, 114, 159, 115, 160, 115, 160, 116, 161, 116, 162, 116, 162, 117, 163, 117, 163, 118, 164, 118, 164, 119, 165, 119, 166, 119, 166, 120, 167, 120, 167, 121, 168, 121, 169, 121, 169, 122, 170, 122, 170, 123, 171, 123, 171, 124, 172, 124, 173, 124, 173, 125, 174, 125, 174, 126, 175, 126, 176, 126, 176, 127, 177, 127, 177, 128, 178, 128, 178, 129, 179, 129, 180, 129, 180, 130, 181, 130, 181, 131, 182, 131, 183, 131, 183, 132, 184, 132, 184, 133, 185, 133, 186, 133, 186, 134, 187, 134, 187, 135, 188, 135, 188, 136, 189, 136, 190, 136, 190, 137, 191, 137, 191, 138, 192, 138, 193, 138, 193, 139, 194, 139, 194, 140, 195, 140, 195, 141, 196, 141, 197, 141, 197, 142, 198, 142, 198, 143, 199, 143, 200, 143, 200, 144, 201, 144, 201, 145, 202, 145, 202, 146, 203, 146, 204, 146, 204, 147, 205, 147, 205, 148, 206, 148, 207, 148, 207, 149, 208, 149, 208, 150, 209, 150, 210, 150, 210, 151, 211, 151, 211, 152, 212, 152, 212, 153, 213, 153, 214, 153, 214, 154, 215, 154, 215, 155, 216, 155, 217, 155, 217, 156, 218, 156, 218, 157, 219, 157, 219, 158, 220, 158, 221, 158, 221, 159, 222, 159, 222, 160, 223, 160, 224, 160, 224, 161, 225, 161, 225, 162, 226, 162, 226, 163, 227, 163, 228, 163, 228, 164, 229, 164, 229, 165, 230, 165, 231, 165, 231, 166, 232, 166, 232, 167, 233, 167, 233, 168, 234, 168, 235, 168, 235, 169, 236, 169, 236, 170, 237, 170, 238, 170, 238, 171, 239, 171, 239, 172, 240, 172, 241, 172, 241, 173, 242, 173, 242, 174, 243, 174, 243, 175, 244, 175, 245, 175, 245, 176, 246, 176, 246, 177, 247, 177, 248, 177, 248, 178, 249, 178, 249, 179, 250, 179, 250, 180, 251, 180, 252, 180, 252, 181, 253, 181, 253, 182, 254, 182, 255, 182, 255, 183, 256, 183, 256, 184, 257, 184, 257, 185, 258, 185, 259, 185, 259, 186, 260, 186, 260, 187, 261, 187, 262, 187, 262, 188, 263, 188, 263, 189, 264, 189, 264, 190, 265, 190, 266, 190, 266, 191, 267, 191, 267, 192, 268, 192, 269, 192, 269, 193, 270, 193, 270, 194, 271, 194, 272, 194, 272, 195, 273, 195, 273, 196, 274, 196, 274, 197, 275, 197, 276, 197, 276, 198, 277, 198, 277, 199, 278, 199, 279, 199, 279, 200, 280, 200, 280, 201, 281, 201, 281, 202, 282, 202, 283, 202, 283, 203, 284, 203, 284, 204, 285, 204, 286, 204, 286, 205, 287, 205, 287, 206, 288, 206, 288, 207, 289, 207, 290, 207, 290, 208, 291, 208, 291, 209, 292, 209, 293, 209, 293, 210, 294, 210, 294, 211, 295, 211, 295, 212, 296, 212, 297, 212, 297, 213, 298, 213, 298, 214, 299, 214, 300, 214, 300, 215, 301, 215, 301, 216, 302, 216, 303, 216, 303, 217, 304, 217, 304, 218, 305, 218, 305, 219, 306, 219, 307, 219, 307, 220, 308, 220, 308, 221, 309, 221, 310, 221, 310, 222, 311, 222, 311, 223, 312, 223, 312, 224, 313, 224, 314, 224, 314, 225, 315, 225, 315, 226, 316, 226, 317, 226, 317, 227, 318, 227, 318, 228, 319, 228, 319, 229, 320, 229, 321, 229, 321, 230, 322, 230, 322, 231, 323, 231, 324, 231, 324, 232, 325, 232, 325, 233, 326, 233, 326, 234, 327, 234, 328, 234, 328, 235, 329, 235, 329, 236, 330, 236, 331, 236, 331, 237, 332, 237, 332, 238, 333, 238, 334, 238, 334, 239, 335, 239, 335, 240, 336, 240, 336, 241, 337, 241, 338, 241, 338, 242, 339, 242, 339, 243, 340, 243, 341, 243, 341, 244, 342, 244, 342, 245, 343, 245, 343, 246, 344, 246, 345, 246, 345, 247, 346, 247, 346, 248, 347, 248, 348, 248, 348, 249, 349, 249, 349, 250, 350, 250, 350, 251, 351, 251, 352, 251, 352, 252, 353, 252, 353, 253, 354, 253, 355, 253, 355, 254, 356, 254, 356, 255, 357, 255, 357, 256, 358, 256, 359, 256, 359, 257, 360, 257, 360, 258, 361, 258, 362, 258, 362, 259, 363, 259, 363, 260, 364, 260, 365, 260, 365, 261, 366, 261, 366, 262, 367, 262, 367, 263, 368, 263, 369, 263, 369, 264, 370, 264, 370, 265, 371, 265, 372, 265, 372, 266, 373, 266, 373, 267, 374, 267, 374, 268, 375, 268, 376, 268, 376, 269, 377, 269, 377, 270, 378, 270, 379, 270, 379, 271, 380, 271, 380, 272, 381, 272, 381, 273, 382, 273, 383, 273, 383, 274, 384, 274, 384, 275, 385, 275, 386, 275, 386, 276, 387, 276, 387, 277, 388, 277, 389, 277, 389, 278, 390, 278, 390, 279, 391, 279, 391, 280, 392, 280, 393, 280, 393, 281, 394, 281, 394, 282, 395, 282, 396, 282, 396, 283, 397, 283, 397, 284, 398, 284, 398, 285, 399, 285, 400, 285, 400, 286, 401, 286, 401, 287, 402, 287, 403, 287, 403, 288, 404, 288, 404, 289, 405, 289, 405, 290, 406, 290, 407, 290, 407, 291, 408, 291, 408, 292, 409, 292, 410, 292, 410, 293, 411, 293, 411, 294, 412, 294, 412, 295, 413, 295, 414, 295, 414, 296, 415, 296, 415, 297, 416, 297, 417, 297, 417, 298, 418, 298, 418, 299, 419, 299, 420, 299, 420, 300, 421, 300, 421, 301, 422, 301, 422, 302, 423, 302, 424, 302, 424, 303, 425, 303, 425, 304, 426, 304, 427, 304, 427, 305, 428, 305, 428, 306, 429, 306, 429, 307, 430, 307, 431, 307, 431, 308, 432, 308, 432, 309, 433, 309, 434, 309, 434, 310, 435, 310, 435, 311, 436, 311, 436, 312, 437, 312, 438, 312, 438, 313, 439, 313, 439, 314, 440, 314, 441, 314, 441, 315, 442, 315, 442, 316, 443, 316, 443, 317, 444, 317, 445, 317, 445, 318, 446, 318, 446, 319, 447, 319, 448, 319, 448, 320, 449, 320, 449, 321, 450, 321, 451, 321, 451, 322, 452, 322, 452, 323, 453, 323, 453, 324, 454, 324, 455, 324, 455, 325, 456, 325, 456, 326, 457, 326, 458, 326, 458, 327, 459, 327, 459, 328, 460, 328, 460, 329, 461, 329, 462, 329, 462, 330, 463, 330, 463, 331, 464, 331, 465, 331, 465, 332, 466, 332, 466, 333, 467, 333, 467, 334, 468, 334, 469, 334, 469, 335, 470, 335, 470, 336, 471, 336, 472, 336, 472, 337, 473, 337, 473, 338, 474, 338, 474, 339, 475, 339, 476, 339, 476, 340, 477, 340, 477, 341, 478, 341, 479, 341, 479, 342, 480, 342, 480, 343, 481, 343, 482, 343, 482, 344, 483, 344, 483, 345, 484, 345, 484, 346, 485, 346, 486, 346, 486, 347, 487, 347, 487, 348, 488, 348, 489, 348, 489, 349, 490, 349, 490, 350, 491, 350, 491, 351, 492, 351, 493, 351, 493, 352, 494, 352, 494, 353, 495, 353, 496, 353, 496, 354, 497, 354, 497, 355, 498, 355, 498, 356, 499, 356, 500, 356, 500, 357, 501, 357, 501, 358, 502, 358, 503, 358, 503, 359, 504, 359, 504, 360, 505, 360, 505, 361, 506, 361, 507, 361, 507, 362, 508, 362, 508, 363, 509, 363, 510, 363, 510, 364, 511, 364, 511, 365, 512, 365, 513, 365, 513, 366, 514, 366, 514, 367, 515, 367, 515, 368, 516, 368, 517, 368, 517, 369, 518, 369, 518, 370, 519, 370, 520, 370, 520, 371, 521, 371, 521, 372, 522, 372, 522, 373, 523, 373, 524, 373, 524, 374, 525, 374, 525, 375, 526, 375, 527, 375, 527, 376, 528, 376, 528, 377, 529, 377, 529, 378, 530, 378, 531, 378, 531, 379, 532, 379, 532, 380, 533, 380, 534, 380, 534, 381, 535, 381, 535, 382, 536, 382, 536, 383, 537, 383, 538, 383, 538, 384, 539, 384, 539, 385, 540, 385, 541, 385, 541, 386, 542, 386, 542, 387, 543, 387, 544, 387, 544, 388, 545, 388, 545, 389, 546, 389, 546, 390, 547, 390, 548, 390, 548, 391, 549, 391, 549, 392, 550, 392, 551, 392, 551, 393, 552, 393, 552, 394, 553, 394, 553, 395, 554, 395, 555, 395, 555, 396, 556, 396, 556, 397, 557, 397, 558, 397, 558, 398, 559, 398, 559, 399, 560, 399, 560, 400, 561, 400, 562, 400, 562, 401, 563, 401, 563, 402, 564, 402, 565, 402, 565, 403, 566, 403, 566, 404, 567, 404, 567, 405, 568, 405, 569, 405, 569, 406, 570, 406, 570, 407, 571, 407, 572, 407, 572, 408, 573, 408, 573, 409, 574, 409, 575, 409, 575, 410, 576, 410, 576, 411, 577, 411, 577, 412, 578, 412, 579, 412, 579, 413, 580, 413, 580, 414, 581, 414, 582, 414, 582, 415, 583, 415, 583, 416, 584, 416, 584, 417, 585, 417, 586, 417, 586, 418, 587, 418, 587, 419, 588, 419, 589, 419, 589, 420, 590, 420, 590, 421, 591, 421, 591, 422, 592, 422, 593, 422, 593, 423, 594, 423, 594, 424, 595, 424, 596, 424, 596, 425, 597, 425, 597, 426, 598, 426, 599, 426, 599, 427, 600, 427, 600, 428, 601, 428, 601, 429, 602, 429, 603, 429, 603, 430, 604, 430, 604, 431, 605, 431, 606, 431, 606, 432, 607, 432, 607, 433, 608, 433, 608, 434, 609, 434, 610, 434, 610, 435, 611, 435, 611, 436, 612, 436, 613, 436, 613, 437, 614, 437, 614, 438, 615, 438, 615, 439, 616, 439, 617, 439, 617, 440, 618, 440, 618, 441, 619, 441, 620, 441, 620, 442, 621, 442, 621, 443, 622, 443, 622, 444, 623, 444, 624, 444, 624, 445, 625, 445, 625, 446, 626, 446, 627, 446, 627, 447, 628, 447, 628, 448, 629, 448, 630, 448, 630, 449, 631, 449, 631, 450, 632, 450, 632, 451, 633, 451, 634, 451, 634, 452, 635, 452, 635, 453, 636, 453, 637, 453, 637, 454, 638, 454, 638, 455, 639, 455, 639, 456, 640, 456, 641, 456, 641, 457, 642, 457, 642, 458, 643, 458, 644, 458, 644, 459, 645, 459, 645, 460, 646, 460, 646, 461, 647, 461, 648, 461, 648, 462, 649, 462, 649, 463, 650, 463, 651, 463, 651, 464, 652, 464, 652, 465, 653, 465, 653, 466, 654, 466, 655, 466, 655, 467, 656, 467, 656, 468, 657, 468, 658, 468, 658, 469, 659, 469, 659, 470, 660, 470, 661, 470, 661, 471, 662, 471, 662, 472, 663, 472, 663, 473, 664, 473, 665, 473, 665, 474, 666, 474, 666, 475, 667, 475, 668, 475, 668, 476, 669, 476, 669, 477, 670, 477, 670, 478, 671, 478, 672, 478, 672, 479, 673, 479, 673, 480, 674, 480, 675, 480, 675, 481, 676, 481, 676, 482, 677, 482, 677, 483, 678, 483, 679, 483, 679, 484, 680, 484, 680, 485, 681, 485, 682, 485, 682, 486, 683, 486, 683, 487, 684, 487, 684, 488, 685, 488, 686, 488, 686, 489, 687, 489, 687, 490, 688, 490, 689, 490, 689, 491, 690, 491, 690, 492, 691, 492, 692, 492, 692, 493, 693, 493, 693, 494, 694, 494, 694, 495, 695, 495, 696, 495, 696, 496, 697, 496, 697, 497, 698, 497, 699, 497, 699, 498, 700, 498, 700, 499, 701, 499, 701, 500, 702, 500, 703, 500, 703, 501, 704, 501, 704, 502, 705, 502, 706, 502, 706, 503, 707, 503, 707, 504, 708, 504, 708, 505, 709, 505, 710, 505, 710, 506, 711, 506, 711, 507, 712, 507, 713, 507, 713, 508, 714, 508, 714, 509, 715, 509, 715, 510, 716, 510, 717, 510, 717, 511, 718, 511, 718, 512, 719, 512, 720, 512, 720, 513, 721, 513, 721, 514, 722, 514, 723, 514, 723, 515, 724, 515, 724, 516, 725, 516, 725, 517, 726, 517, 727, 517, 727, 518, 728, 518, 728, 519, 729, 519, 730, 519, 730, 520, 731, 520, 731, 521, 732, 521, 732, 522, 733, 522, 734, 522, 734, 523, 735, 523, 735, 524, 736, 524, 737, 524, 737, 525, 738, 525, 738, 526, 739, 526, 739, 527, 740, 527, 741, 527, 741, 528, 742, 528, 742, 529, 743, 529, 744, 529, 744, 530, 745, 530, 745, 531, 746, 531, 746, 532, 747, 532, 748, 532, 748, 533, 749, 533, 749, 534, 750, 534, 751, 534, 751, 535, 752, 535, 752, 536, 753, 536, 754, 536, 754, 537, 755, 537, 755, 538, 756, 538, 756, 539, 757, 539, 758, 539, 758, 540, 759, 540, 759, 541, 760, 541, 761, 541, 761, 542, 762, 542, 762, 543, 763, 543, 763, 544, 764, 544, 765, 544, 765, 545, 766, 545, 766, 546, 767, 546, 768, 546, 768, 547, 769, 547, 769, 548, 770, 548, 770, 549, 771, 549, 772, 549, 772, 550, 773, 550, 773, 551, 774, 551, 775, 551, 775, 552, 776, 552, 776, 553, 777, 553, 778, 553, 778, 554, 779, 554, 779, 555, 780, 555, 780, 556, 781, 556, 782, 556, 782, 557, 783, 557, 783, 558, 784, 558, 785, 558, 785, 559, 786, 559, 786, 560, 787, 560, 787, 561, 788, 561, 789, 561, 789, 562, 790, 562, 790, 563, 791, 563, 792, 563, 792, 564, 793, 564, 793, 565, 794, 565, 794, 566, 795, 566, 796, 566, 796, 567, 797, 567, 797, 568, 798, 568, 799, 568, 799, 569, 800, 569, 800, 570, 801, 570, 801, 571, 802, 571, 803, 571, 803, 572, 804, 572, 804, 573, 805, 573, 806, 573, 806, 574, 807, 574, 807, 575, 808, 575, 809, 575, 809, 576, 810, 576, 810, 577, 811, 577, 811, 578, 812, 578, 813, 578, 813, 579, 814, 579, 814, 580, 815, 580, 816, 580, 816, 581, 817, 581, 817, 582, 818, 582, 818, 583, 819, 583, 820, 583, 820, 584, 821, 584, 821, 585, 822, 585, 823, 585, 823, 586, 824, 586, 824, 587, 825, 587, 825, 588, 826, 588, 827, 588, 827, 589, 828, 589, 828, 590, 829, 590, 830, 590, 830, 591, 831, 591, 831, 592, 832, 592, 832, 593, 833, 593, 834, 593, 834, 594, 835, 594, 835, 595, 836, 595, 837, 595, 837, 596, 838, 596, 838, 597, 839, 597, 840, 597, 840, 598, 841, 598, 841, 599, 842, 599, 842, 600, 843, 600, 844, 600, 844, 601, 845, 601, 845, 602, 846, 602, 847, 602, 847, 603, 848, 603, 848, 604, 849, 604, 849, 605, 850, 605, 851, 605, 851, 606, 852, 606, 852, 607, 853, 607, 854, 607, 854, 608, 855, 608, 855, 609, 856, 609, 856, 610, 857, 610, 858, 610, 858, 611, 859, 611, 859, 612, 860, 612, 861, 612, 861, 613, 862, 613, 862, 614, 863, 614, 863, 615, 864, 615, 865, 615, 865, 616, 866, 616, 866, 617, 867, 617, 868, 617, 868, 618, 869, 618, 869, 619, 870, 619, 871, 619, 871, 620, 872, 620, 872, 621, 873, 621, 873, 622, 874, 622, 875, 622, 875, 623, 876, 623, 876, 624, 877, 624, 878, 624, 878, 625, 879, 625, 879, 626, 880, 626, 880, 627, 881, 627, 882, 627, 882, 628, 883, 628, 883, 629, 884, 629, 885, 629, 885, 630, 886, 630, 886, 631, 887, 631, 887, 632, 888, 632, 889, 632, 889, 633, 890, 633, 890, 634, 891, 634, 892, 634, 892, 635, 893, 635, 893, 636, 894, 636, 894, 637, 895, 637, 896, 637, 896, 638, 897, 638, 897, 639, 898, 639, 899, 639, 899, 640, 900, 640, 900, 641, 901, 641, 902, 641, 902, 642, 903, 642, 903, 643, 904, 643, 904, 644, 905, 644, 906, 644, 906, 645, 907, 645, 907, 646, 908, 646, 909, 646, 909, 647, 910, 647, 910, 648, 911, 648, 911, 649, 912, 649, 913, 649, 913, 650, 914, 650, 914, 651, 915, 651, 916, 651, 916, 652, 917, 652, 917, 653, 918, 653, 918, 654, 919, 654, 920, 654, 920, 655, 921, 655, 921, 656, 922, 656, 923, 656, 923, 657, 924, 657, 924, 658, 925, 658, 925, 659, 926, 659, 927, 659, 927, 660, 928, 660, 928, 661, 929, 661, 930, 661, 930, 662, 931, 662, 931, 663, 932, 663, 933, 663, 933, 664, 934, 664, 934, 665, 935, 665, 935, 666, 936, 666, 937, 666, 937, 667, 938, 667, 938, 668, 939, 668, 940, 668, 940, 669, 941, 669, 941, 670, 942, 670, 942, 671, 943, 671, 944, 671, 944, 672, 945, 672, 945, 673, 946, 673, 947, 673, 947, 674, 948, 674, 948, 675, 949, 675, 949, 676, 950, 676, 951, 676, 951, 677, 952, 677, 952, 678, 953, 678, 954, 678, 954, 679, 955, 679, 955, 680, 956, 680, 956, 681, 957, 681, 958, 681, 958, 682, 959, 682, 959, 683, 960, 683, 961, 683, 961, 684, 962, 684, 962, 685, 963, 685, 964, 685, 964, 686, 965, 686, 965, 687, 966, 687, 966, 688, 967, 688, 968, 688, 968, 689, 969, 689, 969, 690, 970, 690, 971, 690, 971, 691, 972, 691, 972, 692, 973, 692, 973, 693, 974, 693, 975, 693, 975, 694, 976, 694, 976, 695, 977, 695, 978, 695, 978, 696, 979, 696, 979, 697, 980, 697, 980, 698, 981, 698, 982, 698, 982, 699, 983, 699, 983, 700, 984, 700, 985, 700, 985, 701, 986, 701, 986, 702, 987, 702, 988, 702, 988, 703, 989, 703, 989, 704, 990, 704, 990, 705, 991, 705, 992, 705, 992, 706, 993, 706, 993, 707, 994, 707, 995, 707, 995, 708, 996, 708, 996, 709, 997, 709, 997, 710, 998, 710, 999, 710, 999, 711, 1000, 711, 1000, 712, 1001, 712, 1002, 712, 1002, 713, 1003, 713, 1003, 714, 1004, 714, 1004, 715, 1005, 715, 1006, 715, 1006, 716, 1007, 716, 1007, 717, 1008, 717, 1009, 717, 1009, 718, 1010, 718, 1010, 719, 1011, 719, 1011, 720, 1012, 720, 1013, 720, 1013, 721, 1014, 721, 1014, 722, 1015, 722, 1016, 722, 1016, 723, 1017, 723, 1017, 724, 1018, 724, 1019, 724, 1019, 725, 1020, 725, 1020, 726, 1021, 726, 1021, 727, 1022, 727, 1023, 727, 1023, 728, 1024, 728, 1024, 729, 1025, 729, 1026, 729, 1026, 730, 1027, 730, 1027, 731, 1028, 731, 1028, 732, 1029, 732, 1030, 732, 1030, 733, 1031, 733, 1031, 734, 1032, 734, 1033, 734, 1033, 735, 1034, 735, 1034, 736, 1035, 736, 1035, 737, 1036, 737, 1037, 737, 1037, 738, 1038, 738, 1038, 739, 1039, 739, 1040, 739, 1040, 740, 1041, 740, 1041, 741, 1042, 741, 1042, 742, 1043, 742, 1044, 742, 1044, 743, 1045, 743, 1045, 744, 1046, 744, 1047, 744, 1047, 745, 1048, 745, 1048, 746, 1049, 746, 1050, 746, 1050, 747, 1051, 747, 1051, 748, 1052, 748, 1052, 749, 1053, 749, 1054, 749, 1054, 750, 1055, 750, 1055, 751, 1056, 751, 1057, 751, 1057, 752, 1058, 752, 1058, 753, 1059, 753, 1059, 754, 1060, 754, 1061, 754, 1061, 755, 1062, 755, 1062, 756, 1063, 756, 1064, 756, 1064, 757, 1065, 757, 1065, 758, 1066, 758, 1066, 759, 1067, 759, 1068, 759, 1068, 760, 1069, 760, 1069, 761, 1070, 761, 1071, 761, 1071, 762, 1072, 762, 1072, 763, 1073, 763, 1073, 764, 1074, 764, 1075, 764, 1075, 765, 1076, 765, 1076, 766, 1077, 766, 1078, 766, 1078, 767, 1079, 767, 1079, 768, 1080, 768, 1081, 768, 1081, 769, 1082, 769, 1082, 770, 1083, 770, 1083, 771, 1084, 771, 1085, 771, 1085, 772, 1086, 772, 1086, 773, 1087, 773, 1088, 773, 1088, 774, 1089, 774, 1089, 775, 1090, 775, 1090, 776, 1091, 776, 1092, 776, 1092, 777, 1093, 777, 1093, 778, 1094, 778, 1095, 778, 1095, 779, 1096, 779, 1096, 780, 1097, 780, 1097, 781, 1098, 781, 1099, 781, 1099, 782, 1100, 782, 1100, 783, 1101, 783, 1102, 783, 1102, 784, 1103, 784, 1103, 785, 1104, 785, 1104, 786, 1105, 786, 1106, 786, 1106, 787, 1107, 787, 1107, 788, 1108, 788, 1109, 788, 1109, 789, 1110, 789, 1110, 790, 1111, 790, 1112, 790, 1112, 791, 1113, 791, 1113, 792, 1114, 792, 1114, 793, 1115, 793, 1116, 793, 1116, 794, 1117, 794, 1117, 795, 1118, 795, 1119, 795, 1119, 796, 1120, 796, 1120, 797, 1121, 797, 1121, 798, 1122, 798, 1123, 798, 1123, 799, 1124, 799, 1124, 800, 1125, 800, 1126, 800, 1126, 801, 1127, 801, 1127, 802, 1128, 802, 1128, 803, 1129, 803, 1130, 803, 1130, 804, 1131, 804, 1131, 805, 1132, 805, 1133, 805, 1133, 806, 1134, 806, 1134, 807, 1135, 807, 1135, 808, 1136, 808, 1137, 808, 1137, 809, 1138, 809, 1138, 810, 1139, 810, 1140, 810, 1140, 811, 1141, 811, 1141, 812, 1142, 812, 1143, 812, 1143, 813, 1144, 813, 1144, 814, 1145, 814, 1145, 815, 1146, 815, 1147, 815, 1147, 816, 1148, 816, 1148, 817, 1149, 817, 1150, 817, 1150, 818, 1151, 818, 1151, 819, 1152, 819, 1152, 820, 1153, 820, 1154, 820, 1154, 821, 1155, 821, 1155, 822, 1156, 822, 1157, 822, 1157, 823, 1158, 823, 1158, 824, 1159, 824, 1159, 825, 1160, 825, 1161, 825, 1161, 826, 1162, 826, 1162, 827, 1163, 827, 1164, 827, 1164, 828, 1165, 828, 1165, 829, 1166, 829, 1167, 829, 1167, 830, 1168, 830, 1168, 831, 1169, 831, 1169, 832, 1170, 832, 1171, 832, 1171, 833, 1172, 833, 1172, 834, 1173, 834, 1174, 834, 1174, 835, 1175, 835, 1175, 836, 1176, 836, 1176, 837, 1177, 837, 1178, 837, 1178, 838, 1179, 838, 1179, 839, 1180, 839, 1181, 839, 1181, 840, 1182, 840, 1182, 841, 1183, 841, 1183, 842, 1184, 842, 1185, 842, 1185, 843, 1186, 843, 1186, 844, 1187, 844, 1188, 844, 1188, 845, 1189, 845, 1189, 846, 1190, 846, 1190, 847, 1191, 847, 1192, 847, 1192, 848, 1193, 848, 1193, 849, 1194, 849, 1195, 849, 1195, 850, 1196, 850, 1196, 851, 1197, 851, 1198, 851, 1198, 852, 1199, 852, 1199, 853, 1200, 853, 1200, 854, 1201, 854, 1202, 854, 1202, 855, 1203, 855, 1203, 856, 1204, 856, 1205, 856, 1205, 857, 1206, 857, 1206, 858, 1207, 858, 1207, 859, 1208, 859, 1209, 859, 1209, 860, 1210, 860, 1210, 861, 1211, 861, 1212, 861, 1212, 862, 1213, 862, 1213, 863, 1214, 863, 1214, 864, 1215, 864, 1216, 864, 1216, 865, 1217, 865, 1217, 866, 1218, 866, 1219, 866, 1219, 867, 1220, 867, 1220, 868, 1221, 868, 1221, 869, 1222, 869, 1223, 869, 1223, 870, 1224, 870, 1224, 871, 1225, 871, 1226, 871, 1226, 872, 1227, 872, 1227, 873, 1228, 873, 1229, 873, 1229, 874, 1230, 874, 1230, 875, 1231, 875, 1231, 876, 1232, 876, 1233, 876, 1233, 877, 1234, 877, 1234, 878, 1235, 878, 1236, 878, 1236, 879, 1237, 879, 1237, 880, 1238, 880, 1238, 881, 1239, 881, 1240, 881, 1240, 882, 1241, 882, 1241, 883, 1242, 883, 1243, 883, 1243, 884, 1244, 884, 1244, 885, 1245, 885, 1245, 886, 1246, 886, 1247, 886, 1247, 887, 1248, 887, 1248, 888, 1249, 888, 1250, 888, 1250, 889, 1251, 889, 1251, 890, 1252, 890, 1252, 891, 1253, 891, 1254, 891, 1254, 892, 1255, 892, 1255, 893, 1256, 893, 1257, 893, 1257, 894, 1258, 894, 1258, 895, 1259, 895, 1260, 895, 1260, 896, 1261, 896, 1261, 897, 1262, 897, 1262, 898, 1263, 898, 1264, 898, 1264, 899, 1265, 899, 1265, 900, 1266, 900, 1267, 900, 1267, 901, 1268, 901, 1268, 902, 1269, 902, 1269, 903, 1270, 903, 1271, 903, 1271, 904, 1272, 904, 1272, 905, 1273, 905, 1274, 905, 1274, 906, 1275, 906, 1275, 907, 1276, 907, 1276, 908, 1277, 908, 1278, 908, 1278, 909, 1279, 909, 1279, 910, 1280, 910, 1281, 910, 1281, 911, 1282, 911, 1282, 912, 1283, 912, 1283, 913, 1284, 913, 1285, 913, 1285, 914, 1286, 914, 1286, 915, 1287, 915, 1288, 915, 1288, 916, 1289, 916, 1289, 917, 1290, 917, 1291, 917, 1291, 918, 1292, 918, 1292, 919, 1293, 919, 1293, 920, 1294, 920, 1295, 920, 1295, 921, 1296, 921, 1296, 922, 1297, 922, 1298, 922, 1298, 923, 1299, 923, 1299, 924, 1300, 924, 1300, 925, 1301, 925, 1302, 925, 1302, 926, 1303, 926, 1303, 927, 1304, 927, 1305, 927, 1305, 928, 1306, 928, 1306, 929, 1307, 929, 1307, 930, 1308, 930, 1309, 930, 1309, 931, 1310, 931, 1310, 932, 1311, 932, 1312, 932, 1312, 933, 1313, 933, 1313, 934, 1314, 934, 1314, 935, 1315, 935, 1316, 935, 1316, 936, 1317, 936, 1317, 937, 1318, 937, 1319, 937, 1319, 938, 1320, 938, 1320, 939, 1321, 939, 1322, 939, 1322, 940, 1323, 940, 1323, 941, 1324, 941, 1324, 942, 1325, 942, 1326, 942, 1326, 943, 1327, 943, 1327, 944, 1328, 944, 1329, 944, 1329, 945, 1330, 945, 1330, 946, 1331, 946, 1331, 947, 1332, 947, 1333, 947, 1333, 948, 1334, 948, 1334, 949, 1335, 949, 1336, 949, 1336, 950, 1337, 950, 1337, 951, 1338, 951, 1338, 952, 1339, 952, 1340, 952, 1340, 953, 1341, 953, 1341, 954, 1342, 954, 1343, 954, 1343, 955, 1344, 955, 1344, 956, 1345, 956, 1345, 957, 1346, 957, 1347, 957, 1347, 958, 1348, 958, 1348, 959, 1349, 959, 1350, 959, 1350, 960, 1351, 960, 1351, 961, 1352, 961, 1353, 961, 1353, 962, 1354, 962, 1354, 963, 1355, 963, 1355, 964, 1356, 964, 1357, 964, 1357, 965, 1358, 965, 1358, 966, 1359, 966, 1360, 966, 1360, 967, 1361, 967, 1361, 968, 1362, 968, 1362, 969, 1363, 969, 1364, 969, 1364, 970, 1365, 970, 1365, 971, 1366, 971, 1367, 971, 1367, 972, 1368, 972, 1368, 973, 1369, 973, 1369, 974, 1370, 974, 1371, 974, 1371, 975, 1372, 975, 1372, 976, 1373, 976, 1374, 976, 1374, 977, 1375, 977, 1375, 978, 1376, 978, 1377, 978, 1377, 979, 1378, 979, 1378, 980, 1379, 980, 1379, 981, 1380, 981, 1381, 981, 1381, 982, 1382, 982, 1382, 983, 1383, 983, 1384, 983, 1384, 984, 1385, 984, 1385, 985, 1386, 985, 1386, 986, 1387, 986, 1388, 986, 1388, 987, 1389, 987, 1389, 988, 1390, 988, 1391, 988, 1391, 989, 1392, 989, 1392, 990, 1393, 990, 1393, 991, 1394, 991, 1395, 991, 1395, 992, 1396, 992, 1396, 993, 1397, 993, 1398, 993, 1398, 994, 1399, 994, 1399, 995, 1400, 995, 1400, 996, 1401, 996, 1402, 996, 1402, 997, 1403, 997, 1403, 998, 1404, 998, 1405, 998, 1405, 999, 1406, 999, 1406, 1000, 1407, 1000, 1408, 1000, 1408, 1001, 1409, 1001, 1409, 1002, 1410, 1002, 1410, 1003, 1411, 1003, 1412, 1003, 1412, 1004, 1413, 1004, 1413, 1005, 1414, 1005, 1415, 1005, 1415, 1006, 1416, 1006, 1416, 1007, 1417, 1007, 1417, 1008, 1418, 1008, 1419, 1008, 1419, 1009, 1420, 1009, 1420, 1010, 1421, 1010, 1422, 1010, 1422, 1011, 1423, 1011, 1423, 1012, 1424, 1012, 1424, 1013, 1425, 1013, 1426, 1013, 1426, 1014, 1427, 1014, 1427, 1015, 1428, 1015, 1429, 1015, 1429, 1016, 1430, 1016, 1430, 1017, 1431, 1017, 1431, 1018, 1432, 1018, 1433, 1018, 1433, 1019, 1434, 1019, 1434, 1020, 1435, 1020, 1436, 1020, 1436, 1021, 1437, 1021, 1437, 1022, 1438, 1022, 1439, 1022, 1439, 1023, 1440, 1023, 1440, 1024, 1441, 1024, 1441, 1025, 1442, 1025, 1443, 1025, 1443, 1026, 1444, 1026, 1444, 1027, 1445, 1027, 1446, 1027, 1446, 1028, 1447, 1028, 1447, 1029, 1448, 1029, 1448, 1030, 1449, 1030, 1450, 1030, 1450, 1031, 1451, 1031, 1451, 1032, 1452, 1032, 1453, 1032, 1453, 1033, 1454, 1033, 1454, 1034, 1455, 1034, 1455, 1035, 1456, 1035, 1457, 1035, 1457, 1036, 1458, 1036, 1458, 1037, 1459, 1037, 1460, 1037, 1460, 1038, 1461, 1038, 1461, 1039, 1462, 1039, 1462, 1040, 1463, 1040, 1464, 1040, 1464, 1041, 1465, 1041, 1465, 1042, 1466, 1042, 1467, 1042, 1467, 1043, 1468, 1043, 1468, 1044, 1469, 1044, 1470, 1044, 1470, 1045, 1471, 1045, 1471, 1046, 1472, 1046, 1472, 1047, 1473, 1047, 1474, 1047, 1474, 1048, 1475, 1048, 1475, 1049, 1476, 1049, 1477, 1049, 1477, 1050, 1478, 1050, 1478, 1051, 1479, 1051, 1479, 1052, 1480, 1052, 1481, 1052, 1481, 1053, 1482, 1053, 1482, 1054, 1483, 1054, 1484, 1054, 1484, 1055, 1485, 1055, 1485, 1056, 1486, 1056, 1486, 1057, 1487, 1057, 1488, 1057, 1488, 1058, 1489, 1058, 1489, 1059, 1490, 1059, 1491, 1059, 1491, 1060, 1492, 1060, 1492, 1061, 1493, 1061, 1493, 1062, 1494, 1062, 1495, 1062, 1495, 1063, 1496, 1063, 1496, 1064, 1497, 1064, 1498, 1064, 1498, 1065, 1499, 1065, 1499, 1066, 1500, 1066, 1501, 1066, 1501, 1067, 1502, 1067, 1502, 1068, 1503, 1068, 1503, 1069, 1504, 1069, 1505, 1069, 1505, 1070, 1506, 1070, 1506, 1071, 1507, 1071, 1508, 1071, 1508, 1072, 1509, 1072, 1509, 1073, 1510, 1073, 1510, 1074, 1511, 1074, 1512, 1074, 1512, 1075, 1513, 1075, 1513, 1076, 1514, 1076, 1515, 1076, 1515, 1077, 1516, 1077, 1516, 1078, 1517, 1078, 1517, 1079, 1518, 1079, 1519, 1079, 1519, 1080, 1520, 1080, 1520, 1081, 1521, 1081, 1522, 1081, 1522, 1082, 1523, 1082, 1523, 1083, 1524, 1083, 1524, 1084, 1525, 1084, 1526, 1084, 1526, 1085, 1527, 1085, 1527, 1086, 1528, 1086, 1529, 1086, 1529, 1087, 1530, 1087, 1530, 1088, 1531, 1088, 1532, 1088, 1532, 1089, 1533, 1089, 1533, 1090, 1534, 1090, 1534, 1091, 1535, 1091, 1536, 1091, 1536, 1092, 1537, 1092, 1537, 1093, 1538, 1093, 1539, 1093, 1539, 1094, 1540, 1094, 1540, 1095, 1541, 1095, 1541, 1096, 1542, 1096, 1543, 1096, 1543, 1097, 1544, 1097, 1544, 1098, 1545, 1098, 1546, 1098, 1546, 1099, 1547, 1099, 1547, 1100, 1548, 1100, 1548, 1101, 1549, 1101, 1550, 1101, 1550, 1102, 1551, 1102, 1551, 1103, 1552, 1103, 1553, 1103, 1553, 1104, 1554, 1104, 1554, 1105, 1555, 1105, 1556, 1105, 1556, 1106, 1557, 1106, 1557, 1107, 1558, 1107, 1558, 1108, 1559, 1108, 1560, 1108, 1560, 1109, 1561, 1109, 1561, 1110, 1562, 1110, 1563, 1110, 1563, 1111, 1564, 1111, 1564, 1112, 1565, 1112, 1565, 1113, 1566, 1113, 1567, 1113, 1567, 1114, 1568, 1114, 1568, 1115, 1569, 1115, 1570, 1115, 1570, 1116, 1571, 1116, 1571, 1117, 1572, 1117, 1572, 1118, 1573, 1118, 1574, 1118, 1574, 1119, 1575, 1119, 1575, 1120, 1576, 1120, 1577, 1120, 1577, 1121, 1578, 1121, 1578, 1122, 1579, 1122, 1579, 1123, 1580, 1123, 1581, 1123, 1581, 1124, 1582, 1124, 1582, 1125, 1583, 1125, 1584, 1125, 1584, 1126, 1585, 1126, 1585, 1127, 1586, 1127, 1587, 1127, 1587, 1128, 1588, 1128, 1588, 1129, 1589, 1129, 1589, 1130, 1590, 1130, 1591, 1130, 1591, 1131, 1592, 1131, 1592, 1132, 1593, 1132, 1594, 1132, 1594, 1133, 1595, 1133, 1595, 1134, 1596, 1134, 1596, 1135, 1597, 1135, 1598, 1135, 1598, 1136, 1599, 1136, 1599, 1137, 1600, 1137, 1601, 1137, 1601, 1138, 1602, 1138, 1602, 1139, 1603, 1139, 1603, 1140, 1604, 1140, 1605, 1140, 1605, 1141, 1606, 1141, 1606, 1142, 1607, 1142, 1608, 1142, 1608, 1143, 1609, 1143, 1609, 1144, 1610, 1144, 1610, 1145, 1611, 1145, 1612, 1145, 1612, 1146, 1613, 1146, 1613, 1147, 1614, 1147, 1615, 1147, 1615, 1148, 1616, 1148, 1616, 1149, 1617, 1149, 1618, 1149, 1618, 1150, 1619, 1150, 1619, 1151, 1620, 1151, 1620, 1152, 1621, 1152, 1622, 1152, 1622, 1153, 1623, 1153, 1623, 1154, 1624, 1154, 1625, 1154, 1625, 1155, 1626, 1155, 1626, 1156, 1627, 1156, 1627, 1157, 1628, 1157, 1629, 1157, 1629, 1158, 1630, 1158, 1630, 1159, 1631, 1159, 1632, 1159, 1632, 1160, 1633, 1160, 1633, 1161, 1634, 1161, 1634, 1162, 1635, 1162, 1636, 1162, 1636, 1163, 1637, 1163, 1637, 1164, 1638, 1164, 1639, 1164, 1639, 1165, 1640, 1165, 1640, 1166, 1641, 1166, 1641, 1167, 1642, 1167, 1643, 1167, 1643, 1168, 1644, 1168, 1644, 1169, 1645, 1169, 1646, 1169, 1646, 1170, 1647, 1170, 1647, 1171, 1648, 1171, 1649, 1171, 1649, 1172, 1650, 1172, 1650, 1173, 1651, 1173, 1651, 1174, 1652, 1174, 1653, 1174, 1653, 1175, 1654, 1175, 1654, 1176, 1655, 1176, 1656, 1176, 1656, 1177, 1657, 1177, 1657, 1178, 1658, 1178, 1658, 1179, 1659, 1179, 1660, 1179, 1660, 1180, 1661, 1180, 1661, 1181, 1662, 1181, 1663, 1181, 1663, 1182, 1664, 1182, 1664, 1183, 1665, 1183, 1665, 1184, 1666, 1184, 1667, 1184, 1667, 1185, 1668, 1185, 1668, 1186, 1669, 1186, 1670, 1186, 1670, 1187, 1671, 1187, 1671, 1188, 1672, 1188, 1672, 1189, 1673, 1189, 1674, 1189, 1674, 1190, 1675, 1190, 1675, 1191, 1676, 1191, 1677, 1191, 1677, 1192, 1678, 1192, 1678, 1193, 1679, 1193, 1680, 1193, 1680, 1194, 1681, 1194, 1681, 1195, 1682, 1195, 1682, 1196, 1683, 1196, 1684, 1196, 1684, 1197, 1685, 1197, 1685, 1198, 1686, 1198, 1687, 1198, 1687, 1199, 1688, 1199, 1688, 1200, 1689, 1200, 1689, 1201, 1690, 1201, 1691, 1201, 1691, 1202, 1692, 1202, 1692, 1203, 1693, 1203, 1694, 1203, 1694, 1204, 1695, 1204, 1695, 1205, 1696, 1205, 1696, 1206, 1697, 1206, 1698, 1206, 1698, 1207, 1699, 1207, 1699, 1208, 1700, 1208, 1701, 1208, 1701, 1209, 1702, 1209, 1702, 1210, 1703, 1210, 1703, 1211, 1704, 1211, 1705, 1211, 1705, 1212, 1706, 1212, 1706, 1213, 1707, 1213, 1708, 1213, 1708, 1214, 1709, 1214, 1709, 1215, 1710, 1215, 1711, 1215, 1711, 1216, 1712, 1216, 1712, 1217, 1713, 1217, 1713, 1218, 1714, 1218, 1715, 1218, 1715, 1219, 1716, 1219, 1716, 1220, 1717, 1220, 1718, 1220, 1718, 1221, 1719, 1221, 1719, 1222, 1720, 1222, 1720, 1223, 1721, 1223, 1722, 1223, 1722, 1224, 1723, 1224, 1723, 1225, 1724, 1225, 1725, 1225, 1725, 1226, 1726, 1226, 1726, 1227, 1727, 1227, 1727, 1228, 1728, 1228, 1729, 1228, 1729, 1229, 1730, 1229, 1730, 1230, 1731, 1230, 1732, 1230, 1732, 1231, 1733, 1231, 1733, 1232, 1734, 1232, 1734, 1233, 1735, 1233, 1736, 1233, 1736, 1234, 1737, 1234, 1737, 1235, 1738, 1235, 1739, 1235, 1739, 1236, 1740, 1236, 1740, 1237, 1741, 1237, 1742, 1237, 1742, 1238, 1743, 1238, 1743, 1239, 1744, 1239, 1744, 1240, 1745, 1240, 1746, 1240, 1746, 1241, 1747, 1241, 1747, 1242, 1748, 1242, 1749, 1242, 1749, 1243, 1750, 1243, 1750, 1244, 1751, 1244, 1751, 1245, 1752, 1245, 1753, 1245, 1753, 1246, 1754, 1246, 1754, 1247, 1755, 1247, 1756, 1247, 1756, 1248, 1757, 1248, 1757, 1249, 1758, 1249, 1758, 1250, 1759, 1250, 1760, 1250, 1760, 1251, 1761, 1251, 1761, 1252, 1762, 1252, 1763, 1252, 1763, 1253, 1764, 1253, 1764, 1254, 1765, 1254, 1766, 1254, 1766, 1255, 1767, 1255, 1767, 1256, 1768, 1256, 1768, 1257, 1769, 1257, 1770, 1257, 1770, 1258, 1771, 1258, 1771, 1259, 1772, 1259, 1773, 1259, 1773, 1260, 1774, 1260, 1774, 1261, 1775, 1261, 1775, 1262, 1776, 1262, 1777, 1262, 1777, 1263, 1778, 1263, 1778, 1264, 1779, 1264, 1780, 1264, 1780, 1265, 1781, 1265, 1781, 1266, 1782, 1266, 1782, 1267, 1783, 1267, 1784, 1267, 1784, 1268, 1785, 1268, 1785, 1269, 1786, 1269, 1787, 1269, 1787, 1270, 1788, 1270, 1788, 1271, 1789, 1271, 1789, 1272, 1790, 1272, 1791, 1272, 1791, 1273, 1792, 1273, 1792, 1274, 1793, 1274, 1794, 1274, 1794, 1275, 1795, 1275, 1795, 1276, 1796, 1276, 1797, 1276, 1797, 1277, 1798, 1277, 1798, 1278, 1799, 1278, 1799, 1279, 1800, 1279, 1801, 1279, 1801, 1280, 1802, 1280, 1802, 1281, 1803, 1281, 1804, 1281, 1804, 1282, 1805, 1282, 1805, 1283, 1806, 1283, 1806, 1284, 1807, 1284, 1808, 1284, 1808, 1285, 1809, 1285, 1809, 1286, 1810, 1286, 1811, 1286, 1811, 1287, 1812, 1287, 1812, 1288, 1813, 1288, 1813, 1289, 1814, 1289, 1815, 1289, 1815, 1290, 1816, 1290, 1816, 1291, 1817, 1291, 1818, 1291, 1818, 1292, 1819, 1292, 1819, 1293, 1820, 1293, 1820, 1294, 1821, 1294, 1822, 1294, 1822, 1295, 1823, 1295, 1823, 1296, 1824, 1296, 1825, 1296, 1825, 1297, 1826, 1297, 1826, 1298, 1827, 1298, 1828, 1298, 1828, 1299, 1829, 1299, 1829, 1300, 1830, 1300, 1830, 1301, 1831, 1301, 1832, 1301, 1832, 1302, 1833, 1302, 1833, 1303, 1834, 1303, 1835, 1303, 1835, 1304, 1836, 1304, 1836, 1305, 1837, 1305, 1837, 1306, 1838, 1306, 1839, 1306, 1839, 1307, 1840, 1307, 1840, 1308, 1841, 1308, 1842, 1308, 1842, 1309, 1843, 1309, 1843, 1310, 1844, 1310, 1844, 1311, 1845, 1311, 1846, 1311, 1846, 1312, 1847, 1312, 1847, 1313, 1848, 1313, 1849, 1313, 1849, 1314, 1850, 1314, 1850, 1315, 1851, 1315, 1851, 1316, 1852, 1316, 1853, 1316, 1853, 1317, 1854, 1317, 1854, 1318, 1855, 1318, 1856, 1318, 1856, 1319, 1857, 1319, 1857, 1320, 1858, 1320, 1859, 1320, 1859, 1321, 1860, 1321, 1860, 1322, 1861, 1322, 1861, 1323, 1862, 1323, 1863, 1323, 1863, 1324, 1864, 1324, 1864, 1325, 1865, 1325, 1866, 1325, 1866, 1326, 1867, 1326, 1867, 1327, 1868, 1327, 1868, 1328, 1869, 1328, 1870, 1328, 1870, 1329, 1871, 1329, 1871, 1330, 1872, 1330, 1873, 1330, 1873, 1331, 1874, 1331, 1874, 1332, 1875, 1332, 1875, 1333, 1876, 1333, 1877, 1333, 1877, 1334, 1878, 1334, 1878, 1335, 1879, 1335, 1880, 1335, 1880, 1336, 1881, 1336, 1881, 1337, 1882, 1337, 1882, 1338, 1883, 1338, 1884, 1338, 1884, 1339, 1885, 1339, 1885, 1340, 1886, 1340, 1887, 1340, 1887, 1341, 1888, 1341, 1888, 1342, 1889, 1342, 1890, 1342, 1890, 1343, 1891, 1343, 1891, 1344, 1892, 1344, 1892, 1345, 1893, 1345, 1894, 1345, 1894, 1346, 1895, 1346, 1895, 1347, 1896, 1347, 1897, 1347, 1897, 1348, 1898, 1348, 1898, 1349, 1899, 1349, 1899, 1350, 1900, 1350, 1901, 1350, 1901, 1351, 1902, 1351, 1902, 1352, 1903, 1352, 1904, 1352, 1904, 1353, 1905, 1353, 1905, 1354, 1906, 1354, 1906, 1355, 1907, 1355, 1908, 1355, 1908, 1356, 1909, 1356, 1909, 1357, 1910, 1357, 1911, 1357, 1911, 1358, 1912, 1358, 1912, 1359, 1913, 1359, 1913, 1360, 1914, 1360, 1915, 1360, 1915, 1361, 1916, 1361, 1916, 1362, 1917, 1362, 1918, 1362, 1918, 1363, 1919, 1363, 1919, 1364, 1920, 1364, 1921, 1364, 1921, 1365, 1922, 1365, 1922, 1366, 1923, 1366, 1923, 1367, 1924, 1367, 1925, 1367, 1925, 1368, 1926, 1368, 1926, 1369, 1927, 1369, 1928, 1369, 1928, 1370, 1929, 1370, 1929, 1371, 1930, 1371, 1930, 1372, 1931, 1372, 1932, 1372, 1932, 1373, 1933, 1373, 1933, 1374, 1934, 1374, 1935, 1374, 1935, 1375, 1936, 1375, 1936, 1376, 1937, 1376, 1937, 1377, 1938, 1377, 1939, 1377, 1939, 1378, 1940, 1378, 1940, 1379, 1941, 1379, 1942, 1379, 1942, 1380, 1943, 1380, 1943, 1381, 1944, 1381, 1945, 1381, 1945, 1382, 1946, 1382, 1946, 1383, 1947, 1383, 1947, 1384, 1948, 1384, 1949, 1384, 1949, 1385, 1950, 1385, 1950, 1386, 1951, 1386, 1952, 1386, 1952, 1387, 1953, 1387, 1953, 1388, 1954, 1388, 1954, 1389, 1955, 1389, 1956, 1389, 1956, 1390, 1957, 1390, 1957, 1391, 1958, 1391, 1959, 1391, 1959, 1392, 1960, 1392, 1960, 1393, 1961, 1393, 1961, 1394, 1962, 1394, 1963, 1394, 1963, 1395, 1964, 1395, 1964, 1396, 1965, 1396, 1966, 1396, 1966, 1397, 1967, 1397, 1967, 1398, 1968, 1398, 1968, 1399, 1969, 1399, 1970, 1399, 1970, 1400, 1971, 1400, 1971, 1401, 1972, 1401, 1973, 1401, 1973, 1402, 1974, 1402, 1974, 1403, 1975, 1403, 1976, 1403, 1976, 1404, 1977, 1404, 1977, 1405, 1978, 1405, 1978, 1406, 1979, 1406, 1980, 1406, 1980, 1407, 1981, 1407, 1981, 1408, 1982, 1408, 1983, 1408, 1983, 1409, 1984, 1409, 1984, 1410, 1985, 1410, 1985, 1411, 1986, 1411, 1987, 1411, 1987, 1412, 1988, 1412, 1988, 1413, 1989, 1413, 1990, 1413, 1990, 1414, 1991, 1414, 1991, 1415, 1992, 1415, 1992, 1416, 1993, 1416, 1994, 1416, 1994, 1417, 1995, 1417, 1995, 1418, 1996, 1418, 1997, 1418, 1997, 1419, 1998, 1419, 1998, 1420, 1999, 1420, 1999, 1421, 2000, 1421, 2001, 1421, 2001, 1422, 2002, 1422, 2002, 1423, 2003, 1423, 2004, 1423, 2004, 1424, 2005, 1424, 2005, 1425, 2006, 1425, 2007, 1425, 2007, 1426, 2008, 1426, 2008, 1427, 2009, 1427, 2009, 1428, 2010, 1428, 2011, 1428, 2011, 1429, 2012, 1429, 2012, 1430, 2013, 1430, 2014, 1430, 2014, 1431, 2015, 1431, 2015, 1432, 2016, 1432, 2016, 1433, 2017, 1433, 2018, 1433, 2018, 1434, 2019, 1434, 2019, 1435, 2020, 1435, 2021, 1435, 2021, 1436, 2022, 1436, 2022, 1437, 2023, 1437, 2023, 1438, 2024, 1438, 2025, 1438, 2025, 1439, 2026, 1439, 2026, 1440, 2027, 1440, 2028, 1440, 2028, 1441, 2029, 1441, 2029, 1442, 2030, 1442, 2030, 1443, 2031, 1443, 2032, 1443, 2032, 1444, 2033, 1444, 2033, 1445, 2034, 1445, 2035, 1445, 2035, 1446, 2036, 1446, 2036, 1447, 2037, 1447, 2038, 1447, 2038, 1448, 2039, 1448, 2039, 1449, 2040, 1449, 2040, 1450, 2041, 1450, 2042, 1450, 2042, 1451, 2043, 1451, 2043, 1452, 2044, 1452, 2045, 1452, 2045, 1453, 2046, 1453, 2046, 1454, 2047, 1454, 2047, 1455, 2048, 1455, 2049, 1455, 2049, 1456, 2050, 1456, 2050, 1457, 2051, 1457, 2052, 1457, 2052, 1458, 2053, 1458, 2053, 1459, 2054, 1459, 2054, 1460, 2055, 1460, 2056, 1460, 2056, 1461, 2057, 1461, 2057, 1462, 2058, 1462, 2059, 1462, 2059, 1463, 2060, 1463, 2060, 1464, 2061, 1464, 2061, 1465, 2062, 1465, 2063, 1465, 2063, 1466, 2064, 1466, 2064, 1467, 2065, 1467, 2066, 1467, 2066, 1468, 2067, 1468, 2067, 1469, 2068, 1469, 2069, 1469, 2069, 1470, 2070, 1470, 2070, 1471, 2071, 1471, 2071, 1472, 2072, 1472, 2073, 1472, 2073, 1473, 2074, 1473, 2074, 1474, 2075, 1474, 2076, 1474, 2076, 1475, 2077, 1475, 2077, 1476, 2078, 1476, 2078, 1477, 2079, 1477, 2080, 1477, 2080, 1478, 2081, 1478, 2081, 1479, 2082, 1479, 2083, 1479, 2083, 1480, 2084, 1480, 2084, 1481, 2085, 1481, 2085, 1482, 2086, 1482, 2087, 1482, 2087, 1483, 2088, 1483, 2088, 1484, 2089, 1484, 2090, 1484, 2090, 1485, 2091, 1485, 2091, 1486, 2092, 1486, 2092, 1487, 2093, 1487, 2094, 1487, 2094, 1488, 2095, 1488, 2095, 1489, 2096, 1489, 2097, 1489, 2097, 1490, 2098, 1490, 2098, 1491, 2099, 1491, 2100, 1491, 2100, 1492, 2101, 1492, 2101, 1493, 2102, 1493, 2102, 1494, 2103, 1494, 2104, 1494, 2104, 1495, 2105, 1495, 2105, 1496, 2106, 1496, 2107, 1496, 2107, 1497, 2108, 1497, 2108, 1498, 2109, 1498, 2109, 1499, 2110, 1499, 2111, 1499, 2111, 1500, 2112, 1500, 2112, 1501, 2113, 1501, 2114, 1501, 2114, 1502, 2115, 1502, 2115, 1503, 2116, 1503, 2116, 1504, 2117, 1504, 2118, 1504, 2118, 1505, 2119, 1505, 2119, 1506, 2120, 1506, 2121, 1506, 2121, 1507, 2122, 1507, 2122, 1508, 2123, 1508, 2123, 1509, 2124, 1509, 2125, 1509, 2125, 1510, 2126, 1510, 2126, 1511, 2127, 1511, 2128, 1511, 2128, 1512, 2129, 1512, 2129, 1513, 2130, 1513, 2131, 1513, 2131, 1514, 2132, 1514, 2132, 1515, 2133, 1515, 2133, 1516, 2134, 1516, 2135, 1516, 2135, 1517, 2136, 1517, 2136, 1518, 2137, 1518, 2138, 1518, 2138, 1519, 2139, 1519, 2139, 1520, 2140, 1520, 2140, 1521, 2141, 1521, 2142, 1521, 2142, 1522, 2143, 1522, 2143, 1523, 2144, 1523, 2145, 1523, 2145, 1524, 2146, 1524, 2146, 1525, 2147, 1525, 2147, 1526, 2148, 1526, 2149, 1526, 2149, 1527, 2150, 1527, 2150, 1528, 2151, 1528, 2152, 1528, 2152, 1529, 2153, 1529, 2153, 1530, 2154, 1530, 2155, 1530, 2155, 1531, 2156, 1531, 2156, 1532, 2157, 1532, 2157, 1533, 2158, 1533, 2159, 1533, 2159, 1534, 2160, 1534, 2160, 1535, 2161, 1535, 2162, 1535, 2162, 1536, 2163, 1536, 2163, 1537, 2164, 1537, 2164, 1538, 2165, 1538, 2166, 1538, 2166, 1539, 2167, 1539, 2167, 1540, 2168, 1540, 2169, 1540, 2169, 1541, 2170, 1541, 2170, 1542, 2171, 1542, 2171, 1543, 2172, 1543, 2173, 1543, 2173, 1544, 2174, 1544, 2174, 1545, 2175, 1545, 2176, 1545, 2176, 1546, 2177, 1546, 2177, 1547, 2178, 1547, 2178, 1548, 2179, 1548, 2180, 1548, 2180, 1549, 2181, 1549, 2181, 1550, 2182, 1550, 2183, 1550, 2183, 1551, 2184, 1551, 2184, 1552, 2185, 1552, 2186, 1552, 2186, 1553, 2187, 1553, 2187, 1554, 2188, 1554, 2188, 1555, 2189, 1555, 2190, 1555, 2190, 1556, 2191, 1556, 2191, 1557, 2192, 1557, 2193, 1557, 2193, 1558, 2194, 1558, 2194, 1559, 2195, 1559, 2195, 1560, 2196, 1560, 2197, 1560, 2197, 1561, 2198, 1561, 2198, 1562, 2199, 1562, 2200, 1562, 2200, 1563, 2201, 1563, 2201, 1564, 2202, 1564, 2202, 1565, 2203, 1565, 2204, 1565, 2204, 1566, 2205, 1566, 2205, 1567, 2206, 1567, 2207, 1567, 2207, 1568, 2208, 1568, 2208, 1569, 2209, 1569, 2209, 1570, 2210, 1570, 2211, 1570, 2211, 1571, 2212, 1571, 2212, 1572, 2213, 1572, 2214, 1572, 2214, 1573, 2215, 1573, 2215, 1574, 2216, 1574, 2217, 1574, 2217, 1575, 2218, 1575, 2218, 1576, 2219, 1576, 2219, 1577, 2220, 1577, 2221, 1577, 2221, 1578, 2222, 1578, 2222, 1579, 2223, 1579, 2224, 1579, 2224, 1580, 2225, 1580, 2225, 1581, 2226, 1581, 2226, 1582, 2227, 1582, 2228, 1582, 2228, 1583, 2229, 1583, 2229, 1584, 2230, 1584, 2231, 1584, 2231, 1585, 2232, 1585, 2232, 1586, 2233, 1586, 2233, 1587, 2234, 1587, 2235, 1587, 2235, 1588, 2236, 1588, 2236, 1589, 2237, 1589, 2238, 1589, 2238, 1590, 2239, 1590, 2239, 1591, 2240, 1591, 2240, 1592, 2241, 1592, 2242, 1592, 2242, 1593, 2243, 1593, 2243, 1594, 2244, 1594, 2245, 1594, 2245, 1595, 2246, 1595, 2246, 1596, 2247, 1596, 2248, 1596, 2248, 1597, 2249, 1597, 2249, 1598, 2250, 1598, 2250, 1599, 2251, 1599, 2252, 1599, 2252, 1600, 2253, 1600, 2253, 1601, 2254, 1601, 2255, 1601, 2255, 1602, 2256, 1602, 2256, 1603, 2257, 1603, 2257, 1604, 2258, 1604, 2259, 1604, 2259, 1605, 2260, 1605, 2260, 1606, 2261, 1606, 2262, 1606, 2262, 1607, 2263, 1607, 2263, 1608, 2264, 1608, 2264, 1609, 2265, 1609, 2266, 1609, 2266, 1610, 2267, 1610, 2267, 1611, 2268, 1611, 2269, 1611, 2269, 1612, 2270, 1612, 2270, 1613, 2271, 1613, 2271, 1614, 2272, 1614, 2273, 1614, 2273, 1615, 2274, 1615, 2274, 1616, 2275, 1616, 2276, 1616, 2276, 1617, 2277, 1617, 2277, 1618, 2278, 1618, 2279, 1618, 2279, 1619, 2280, 1619, 2280, 1620, 2281, 1620, 2281, 1621, 2282, 1621, 2283, 1621, 2283, 1622, 2284, 1622, 2284, 1623, 2285, 1623, 2286, 1623, 2286, 1624, 2287, 1624, 2287, 1625, 2288, 1625, 2288, 1626, 2289, 1626, 2290, 1626, 2290, 1627, 2291, 1627, 2291, 1628, 2292, 1628, 2293, 1628, 2293, 1629, 2294, 1629, 2294, 1630, 2295, 1630, 2295, 1631, 2296, 1631, 2297, 1631, 2297, 1632, 2298, 1632, 2298, 1633, 2299, 1633, 2300, 1633, 2300, 1634, 2301, 1634, 2301, 1635, 2302, 1635, 2302, 1636, 2303, 1636, 2304, 1636, 2304, 1637, 2305, 1637, 2305, 1638, 2306, 1638, 2307, 1638, 2307, 1639, 2308, 1639, 2308, 1640, 2309, 1640, 2310, 1640, 2310, 1641, 2311, 1641, 2311, 1642, 2312, 1642, 2312, 1643, 2313, 1643, 2314, 1643, 2314, 1644, 2315, 1644, 2315, 1645, 2316, 1645, 2317, 1645, 2317, 1646, 2318, 1646, 2318, 1647, 2319, 1647, 2319, 1648, 2320, 1648, 2321, 1648, 2321, 1649, 2322, 1649, 2322, 1650, 2323, 1650, 2324, 1650, 2324, 1651, 2325, 1651, 2325, 1652, 2326, 1652, 2326, 1653, 2327, 1653, 2328, 1653, 2328, 1654, 2329, 1654, 2329, 1655, 2330, 1655, 2331, 1655, 2331, 1656, 2332, 1656, 2332, 1657, 2333, 1657, 2334, 1657, 2334, 1658, 2335, 1658, 2335, 1659, 2336, 1659, 2336, 1660, 2337, 1660, 2338, 1660, 2338, 1661, 2339, 1661, 2339, 1662, 2340, 1662, 2341, 1662, 2341, 1663, 2342, 1663, 2342, 1664, 2343, 1664, 2343, 1665, 2344, 1665, 2345, 1665, 2345, 1666, 2346, 1666, 2346, 1667, 2347, 1667, 2348, 1667, 2348, 1668, 2349, 1668, 2349, 1669, 2350, 1669, 2350, 1670, 2351, 1670, 2352, 1670, 2352, 1671, 2353, 1671, 2353, 1672, 2354, 1672, 2355, 1672, 2355, 1673, 2356, 1673, 2356, 1674, 2357, 1674, 2357, 1675, 2358, 1675, 2359, 1675, 2359, 1676, 2360, 1676, 2360, 1677, 2361, 1677, 2362, 1677, 2362, 1678, 2363, 1678, 2363, 1679, 2364, 1679, 2365, 1679, 2365, 1680, 2366, 1680, 2366, 1681, 2367, 1681, 2367, 1682, 2368, 1682, 2369, 1682, 2369, 1683, 2370, 1683, 2370, 1684, 2371, 1684, 2372, 1684, 2372, 1685, 2373, 1685, 2373, 1686, 2374, 1686, 2374, 1687, 2375, 1687, 2376, 1687, 2376, 1688, 2377, 1688, 2377, 1689, 2378, 1689, 2379, 1689, 2379, 1690, 2380, 1690, 2380, 1691, 2381, 1691, 2381, 1692, 2382, 1692, 2383, 1692, 2383, 1693, 2384, 1693, 2384, 1694, 2385, 1694, 2386, 1694, 2386, 1695, 2387, 1695, 2387, 1696, 2388, 1696, 2388, 1697, 2389, 1697, 2390, 1697, 2390, 1698, 2391, 1698, 2391, 1699, 2392, 1699, 2393, 1699, 2393, 1700, 2394, 1700, 2394, 1701, 2395, 1701, 2396, 1701, 2396, 1702, 2397, 1702, 2397, 1703, 2398, 1703, 2398, 1704, 2399, 1704, 2400, 1704, 2400, 1705, 2401, 1705, 2401, 1706, 2402, 1706, 2403, 1706, 2403, 1707, 2404, 1707, 2404, 1708, 2405, 1708, 2405, 1709, 2406, 1709, 2407, 1709, 2407, 1710, 2408, 1710, 2408, 1711, 2409, 1711, 2410, 1711, 2410, 1712, 2411, 1712, 2411, 1713, 2412, 1713, 2412, 1714, 2413, 1714, 2414, 1714, 2414, 1715, 2415, 1715, 2415, 1716, 2416, 1716, 2417, 1716, 2417, 1717, 2418, 1717, 2418, 1718, 2419, 1718, 2419, 1719, 2420, 1719, 2421, 1719, 2421, 1720, 2422, 1720, 2422, 1721, 2423, 1721, 2424, 1721, 2424, 1722, 2425, 1722, 2425, 1723, 2426, 1723, 2427, 1723, 2427, 1724, 2428, 1724, 2428, 1725, 2429, 1725, 2429, 1726, 2430, 1726, 2431, 1726, 2431, 1727, 2432, 1727, 2432, 1728, 2433, 1728, 2434, 1728, 2434, 1729, 2435, 1729, 2435, 1730, 2436, 1730, 2436, 1731, 2437, 1731, 2438, 1731, 2438, 1732, 2439, 1732, 2439, 1733, 2440, 1733, 2441, 1733, 2441, 1734, 2442, 1734, 2442, 1735, 2443, 1735, 2443, 1736, 2444, 1736, 2445, 1736, 2445, 1737, 2446, 1737, 2446, 1738, 2447, 1738, 2448, 1738, 2448, 1739, 2449, 1739, 2449, 1740, 2450, 1740, 2450, 1741, 2451, 1741, 2452, 1741, 2452, 1742, 2453, 1742, 2453, 1743, 2454, 1743, 2455, 1743, 2455, 1744, 2456, 1744, 2456, 1745, 2457, 1745, 2458, 1745, 2458, 1746, 2459, 1746, 2459, 1747, 2460, 1747, 2460, 1748, 2461, 1748, 2462, 1748, 2462, 1749, 2463, 1749, 2463, 1750, 2464, 1750, 2465, 1750, 2465, 1751, 2466, 1751, 2466, 1752, 2467, 1752, 2467, 1753, 2468, 1753, 2469, 1753, 2469, 1754, 2470, 1754, 2470, 1755, 2471, 1755, 2472, 1755, 2472, 1756, 2473, 1756, 2473, 1757, 2474, 1757, 2474, 1758, 2475, 1758, 2476, 1758, 2476, 1759, 2477, 1759, 2477, 1760, 2478, 1760, 2479, 1760, 2479, 1761, 2480, 1761, 2480, 1762, 2481, 1762, 2481, 1763, 2482, 1763, 2483, 1763, 2483, 1764, 2484, 1764, 2484, 1765, 2485, 1765, 2486, 1765, 2486, 1766, 2487, 1766, 2487, 1767, 2488, 1767, 2489, 1767, 2489, 1768, 2490, 1768, 2490, 1769, 2491, 1769, 2491, 1770, 2492, 1770, 2493, 1770, 2493, 1771, 2494, 1771, 2494, 1772, 2495, 1772, 2496, 1772, 2496, 1773, 2497, 1773, 2497, 1774, 2498, 1774, 2498, 1775, 2499, 1775, 2500, 1775, 2500, 1776, 2501, 1776, 2501, 1777, 2502, 1777, 2503, 1777, 2503, 1778, 2504, 1778, 2504, 1779, 2505, 1779, 2505, 1780, 2506, 1780, 2507, 1780, 2507, 1781, 2508, 1781, 2508, 1782, 2509, 1782, 2510, 1782, 2510, 1783, 2511, 1783, 2511, 1784, 2512, 1784, 2512, 1785, 2513, 1785, 2514, 1785, 2514, 1786, 2515, 1786, 2515, 1787, 2516, 1787, 2517, 1787, 2517, 1788, 2518, 1788, 2518, 1789, 2519, 1789, 2520, 1789, 2520, 1790, 2521, 1790, 2521, 1791, 2522, 1791, 2522, 1792, 2523, 1792, 2524, 1792, 2524, 1793, 2525, 1793, 2525, 1794, 2526, 1794, 2527, 1794, 2527, 1795, 2528, 1795, 2528, 1796, 2529, 1796, 2529, 1797, 2530, 1797, 2531, 1797, 2531, 1798, 2532, 1798, 2532, 1799, 2533, 1799, 2534, 1799, 2534, 1800, 2535, 1800, 2535, 1801, 2536, 1801, 2536, 1802, 2537, 1802, 2538, 1802, 2538, 1803, 2539, 1803, 2539, 1804, 2540, 1804, 2541, 1804, 2541, 1805, 2542, 1805, 2542, 1806, 2543, 1806, 2544, 1806, 2544, 1807, 2545, 1807, 2545, 1808, 2546, 1808, 2546, 1809, 2547, 1809, 2548, 1809, 2548, 1810, 2549, 1810, 2549, 1811, 2550, 1811, 2551, 1811, 2551, 1812, 2552, 1812, 2552, 1813, 2553, 1813, 2553, 1814, 2554, 1814, 2555, 1814, 2555, 1815, 2556, 1815, 2556, 1816, 2557, 1816, 2558, 1816, 2558, 1817, 2559, 1817, 2559, 1818, 2560, 1818, 2560, 1819, 2561, 1819, 2562, 1819, 2562, 1820, 2563, 1820, 2563, 1821, 2564, 1821, 2565, 1821, 2565, 1822, 2566, 1822, 2566, 1823, 2567, 1823, 2567, 1824, 2568, 1824, 2569, 1824, 2569, 1825, 2570, 1825, 2570, 1826, 2571, 1826, 2572, 1826, 2572, 1827, 2573, 1827, 2573, 1828, 2574, 1828, 2575, 1828, 2575, 1829, 2576, 1829, 2576, 1830, 2577, 1830, 2577, 1831, 2578, 1831, 2579, 1831, 2579, 1832, 2580, 1832, 2580, 1833, 2581, 1833, 2582, 1833, 2582, 1834, 2583, 1834, 2583, 1835, 2584, 1835, 2584, 1836, 2585, 1836, 2586, 1836, 2586, 1837, 2587, 1837, 2587, 1838, 2588, 1838, 2589, 1838, 2589, 1839, 2590, 1839, 2590, 1840, 2591, 1840, 2591, 1841, 2592, 1841, 2593, 1841, 2593, 1842, 2594, 1842, 2594, 1843, 2595, 1843, 2596, 1843, 2596, 1844, 2597, 1844, 2597, 1845, 2598, 1845, 2598, 1846, 2599, 1846, 2600, 1846, 2600, 1847, 2601, 1847, 2601, 1848, 2602, 1848, 2603, 1848, 2603, 1849, 2604, 1849, 2604, 1850, 2605, 1850, 2606, 1850, 2606, 1851, 2607, 1851, 2607, 1852, 2608, 1852, 2608, 1853, 2609, 1853, 2610, 1853, 2610, 1854, 2611, 1854, 2611, 1855, 2612, 1855, 2613, 1855, 2613, 1856, 2614, 1856, 2614, 1857, 2615, 1857, 2615, 1858, 2616, 1858, 2617, 1858, 2617, 1859, 2618, 1859, 2618, 1860, 2619, 1860, 2620, 1860, 2620, 1861, 2621, 1861, 2621, 1862, 2622, 1862, 2622, 1863, 2623, 1863, 2624, 1863, 2624, 1864, 2625, 1864, 2625, 1865, 2626, 1865, 2627, 1865, 2627, 1866, 2628, 1866, 2628, 1867, 2629, 1867, 2629, 1868, 2630, 1868, 2631, 1868, 2631, 1869, 2632, 1869, 2632, 1870, 2633, 1870, 2634, 1870, 2634, 1871, 2635, 1871, 2635, 1872, 2636, 1872, 2637, 1872, 2637, 1873, 2638, 1873, 2638, 1874, 2639, 1874, 2639, 1875, 2640, 1875, 2641, 1875, 2641, 1876, 2642, 1876, 2642, 1877, 2643, 1877, 2644, 1877, 2644, 1878, 2645, 1878, 2645, 1879, 2646, 1879, 2646, 1880, 2647, 1880, 2648, 1880, 2648, 1881, 2649, 1881, 2649, 1882, 2650, 1882, 2651, 1882, 2651, 1883, 2652, 1883, 2652, 1884, 2653, 1884, 2653, 1885, 2654, 1885, 2655, 1885, 2655, 1886, 2656, 1886, 2656, 1887, 2657, 1887, 2658, 1887, 2658, 1888, 2659, 1888, 2659, 1889, 2660, 1889, 2660, 1890, 2661, 1890, 2662, 1890, 2662, 1891, 2663, 1891, 2663, 1892, 2664, 1892, 2665, 1892, 2665, 1893, 2666, 1893, 2666, 1894, 2667, 1894, 2668, 1894, 2668, 1895, 2669, 1895, 2669, 1896, 2670, 1896, 2670, 1897, 2671, 1897, 2672, 1897, 2672, 1898, 2673, 1898, 2673, 1899, 2674, 1899, 2675, 1899, 2675, 1900, 2676, 1900, 2676, 1901, 2677, 1901, 2677, 1902, 2678, 1902, 2679, 1902, 2679, 1903, 2680, 1903, 2680, 1904, 2681, 1904, 2682, 1904, 2682, 1905, 2683, 1905, 2683, 1906, 2684, 1906, 2684, 1907, 2685, 1907, 2686, 1907, 2686, 1908, 2687, 1908, 2687, 1909, 2688, 1909, 2689, 1909, 2689, 1910, 2690, 1910, 2690, 1911, 2691, 1911, 2691, 1912, 2692, 1912, 2693, 1912, 2693, 1913, 2694, 1913, 2694, 1914, 2695, 1914, 2696, 1914, 2696, 1915, 2697, 1915, 2697, 1916, 2698, 1916, 2699, 1916, 2699, 1917, 2700, 1917, 2700, 1918, 2701, 1918, 2701, 1919, 2702, 1919, 2703, 1919, 2703, 1920, 2704, 1920, 2704, 1921, 2705, 1921, 2706, 1921, 2706, 1922, 2707, 1922, 2707, 1923, 2708, 1923, 2708, 1924, 2709, 1924, 2710, 1924, 2710, 1925, 2711, 1925, 2711, 1926, 2712, 1926, 2713, 1926, 2713, 1927, 2714, 1927, 2714, 1928, 2715, 1928, 2715, 1929, 2716, 1929, 2717, 1929, 2717, 1930, 2718, 1930, 2718, 1931, 2719, 1931, 2720, 1931, 2720, 1932, 2721, 1932, 2721, 1933, 2722, 1933, 2723, 1933, 2723, 1934, 2724, 1934, 2724, 1935, 2725, 1935, 2725, 1936, 2726, 1936, 2727, 1936, 2727, 1937, 2728, 1937, 2728, 1938, 2729, 1938, 2730, 1938, 2730, 1939, 2731, 1939, 2731, 1940, 2732, 1940, 2732, 1941, 2733, 1941, 2734, 1941, 2734, 1942, 2735, 1942, 2735, 1943, 2736, 1943, 2737, 1943, 2737, 1944, 2738, 1944, 2738, 1945, 2739, 1945, 2739, 1946, 2740, 1946, 2741, 1946, 2741, 1947, 2742, 1947, 2742, 1948, 2743, 1948, 2744, 1948, 2744, 1949, 2745, 1949, 2745, 1950, 2746, 1950, 2746, 1951, 2747, 1951, 2748, 1951, 2748, 1952, 2749, 1952, 2749, 1953, 2750, 1953, 2751, 1953, 2751, 1954, 2752, 1954, 2752, 1955, 2753, 1955, 2754, 1955, 2754, 1956, 2755, 1956, 2755, 1957, 2756, 1957, 2756, 1958, 2757, 1958, 2758, 1958, 2758, 1959, 2759, 1959, 2759, 1960, 2760, 1960, 2761, 1960, 2761, 1961, 2762, 1961, 2762, 1962, 2763, 1962, 2763, 1963, 2764, 1963, 2765, 1963, 2765, 1964, 2766, 1964, 2766, 1965, 2767, 1965, 2768, 1965, 2768, 1966, 2769, 1966, 2769, 1967, 2770, 1967, 2770, 1968, 2771, 1968, 2772, 1968, 2772, 1969, 2773, 1969, 2773, 1970, 2774, 1970, 2775, 1970, 2775, 1971, 2776, 1971, 2776, 1972, 2777, 1972, 2777, 1973, 2778, 1973, 2779, 1973, 2779, 1974, 2780, 1974, 2780, 1975, 2781, 1975, 2782, 1975, 2782, 1976, 2783, 1976, 2783, 1977, 2784, 1977, 2785, 1977, 2785, 1978, 2786, 1978, 2786, 1979, 2787, 1979, 2787, 1980, 2788, 1980, 2789, 1980, 2789, 1981, 2790, 1981, 2790, 1982, 2791, 1982, 2792, 1982, 2792, 1983, 2793, 1983, 2793, 1984, 2794, 1984, 2794, 1985, 2795, 1985, 2796, 1985, 2796, 1986, 2797, 1986, 2797, 1987, 2798, 1987, 2799, 1987, 2799, 1988, 2800, 1988, 2800, 1989, 2801, 1989, 2801, 1990, 2802, 1990, 2803, 1990, 2803, 1991, 2804, 1991, 2804, 1992, 2805, 1992, 2806, 1992, 2806, 1993, 2807, 1993, 2807, 1994, 2808, 1994, 2808, 1995, 2809, 1995, 2810, 1995, 2810, 1996, 2811, 1996, 2811, 1997, 2812, 1997, 2813, 1997, 2813, 1998, 2814, 1998, 2814, 1999, 2815, 1999, 2816, 1999, 2816, 2000, 2817, 2000, 2817, 2001, 2818, 2001, 2818, 2002, 2819, 2002, 2820, 2002, 2820, 2003, 2821, 2003, 2821, 2004, 2822, 2004, 2823, 2004, 2823, 2005, 2824, 2005, 2824, 2006, 2825, 2006, 2825, 2007, 2826, 2007, 2827, 2007, 2827, 2008, 2828, 2008, 2828, 2009, 2829, 2009, 2830, 2009, 2830, 2010, 2831, 2010, 2831, 2011, 2832, 2011, 2832, 2012, 2833, 2012, 2834, 2012, 2834, 2013, 2835, 2013, 2835, 2014, 2836, 2014, 2837, 2014, 2837, 2015, 2838, 2015, 2838, 2016, 2839, 2016, 2839, 2017, 2840, 2017, 2841, 2017, 2841, 2018, 2842, 2018, 2842, 2019, 2843, 2019, 2844, 2019, 2844, 2020, 2845, 2020, 2845, 2021, 2846, 2021, 2847, 2021, 2847, 2022, 2848, 2022, 2848, 2023, 2849, 2023, 2849, 2024, 2850, 2024, 2851, 2024, 2851, 2025, 2852, 2025, 2852, 2026, 2853, 2026, 2854, 2026, 2854, 2027, 2855, 2027, 2855, 2028, 2856, 2028, 2856, 2029, 2857, 2029, 2858, 2029, 2858, 2030, 2859, 2030, 2859, 2031, 2860, 2031, 2861, 2031, 2861, 2032, 2862, 2032, 2862, 2033, 2863, 2033, 2863, 2034, 2864, 2034, 2865, 2034, 2865, 2035, 2866, 2035, 2866, 2036, 2867, 2036, 2868, 2036, 2868, 2037, 2869, 2037, 2869, 2038, 2870, 2038, 2870, 2039, 2871, 2039, 2872, 2039, 2872, 2040, 2873, 2040, 2873, 2041, 2874, 2041, 2875, 2041, 2875, 2042, 2876, 2042, 2876, 2043, 2877, 2043, 2878, 2043, 2878, 2044, 2879, 2044, 2879, 2045, 2880, 2045, 2880, 2046, 2881, 2046, 2882, 2046, 2882, 2047, 2883, 2047, 2883, 2048, 2884, 2048, 2885, 2048, 2885, 2049, 2886, 2049, 2886, 2050, 2887, 2050, 2887, 2051, 2888, 2051, 2889, 2051, 2889, 2052, 2890, 2052, 2890, 2053, 2891, 2053, 2892, 2053, 2892, 2054, 2893, 2054, 2893, 2055, 2894, 2055, 2894, 2056, 2895, 2056, 2896, 2056, 2896, 2057, 2897, 2057, 2897, 2058, 2898, 2058, 2899, 2058, 2899, 2059, 2900, 2059, 2900, 2060, 2901, 2060, 2901, 2061, 2902, 2061, 2903, 2061, 2903, 2062, 2904, 2062, 2904, 2063, 2905, 2063, 2906, 2063, 2906, 2064, 2907, 2064, 2907, 2065, 2908, 2065, 2909, 2065, 2909, 2066, 2910, 2066, 2910, 2067, 2911, 2067, 2911, 2068, 2912, 2068, 2913, 2068, 2913, 2069, 2914, 2069, 2914, 2070, 2915, 2070, 2916, 2070, 2916, 2071, 2917, 2071, 2917, 2072, 2918, 2072, 2918, 2073, 2919, 2073, 2920, 2073, 2920, 2074, 2921, 2074, 2921, 2075, 2922, 2075, 2923, 2075, 2923, 2076, 2924, 2076, 2924, 2077, 2925, 2077, 2925, 2078, 2926, 2078, 2927, 2078, 2927, 2079, 2928, 2079, 2928, 2080, 2929, 2080, 2930, 2080, 2930, 2081, 2931, 2081, 2931, 2082, 2932, 2082, 2933, 2082, 2933, 2083, 2934, 2083, 2934, 2084, 2935, 2084, 2935, 2085, 2936, 2085, 2937, 2085, 2937, 2086, 2938, 2086, 2938, 2087, 2939, 2087, 2940, 2087, 2940, 2088, 2941, 2088, 2941, 2089, 2942, 2089, 2942, 2090, 2943, 2090, 2944, 2090, 2944, 2091, 2945, 2091, 2945, 2092, 2946, 2092, 2947, 2092, 2947, 2093, 2948, 2093, 2948, 2094, 2949, 2094, 2949, 2095, 2950, 2095, 2951, 2095, 2951, 2096, 2952, 2096, 2952, 2097, 2953, 2097, 2954, 2097, 2954, 2098, 2955, 2098, 2955, 2099, 2956, 2099, 2956, 2100, 2957, 2100, 2958, 2100, 2958, 2101, 2959, 2101, 2959, 2102, 2960, 2102, 2961, 2102, 2961, 2103, 2962, 2103, 2962, 2104, 2963, 2104, 2964, 2104, 2964, 2105, 2965, 2105, 2965, 2106, 2966, 2106, 2966, 2107, 2967, 2107, 2968, 2107, 2968, 2108, 2969, 2108, 2969, 2109, 2970, 2109, 2971, 2109, 2971, 2110, 2972, 2110, 2972, 2111, 2973, 2111, 2973, 2112, 2974, 2112, 2975, 2112, 2975, 2113, 2976, 2113, 2976, 2114, 2977, 2114, 2978, 2114, 2978, 2115, 2979, 2115, 2979, 2116, 2980, 2116, 2980, 2117, 2981, 2117, 2982, 2117, 2982, 2118, 2983, 2118, 2983, 2119, 2984, 2119, 2985, 2119, 2985, 2120, 2986, 2120, 2986, 2121, 2987, 2121, 2987, 2122, 2988, 2122, 2989, 2122, 2989, 2123, 2990, 2123, 2990, 2124, 2991, 2124, 2992, 2124, 2992, 2125, 2993, 2125, 2993, 2126, 2994, 2126, 2995, 2126, 2995, 2127, 2996, 2127, 2996, 2128, 2997, 2128, 2997, 2129, 2998, 2129, 2999, 2129, 2999, 2130, 3000, 2130, 3000, 2131, 3001, 2131, 3002, 2131, 3002, 2132, 3003, 2132, 3003, 2133, 3004, 2133, 3004, 2134, 3005, 2134, 3006, 2134, 3006, 2135, 3007, 2135, 3007, 2136, 3008, 2136, 3009, 2136, 3009, 2137, 3010, 2137, 3010, 2138, 3011, 2138, 3011, 2139, 3012, 2139, 3013, 2139, 3013, 2140, 3014, 2140, 3014, 2141, 3015, 2141, 3016, 2141, 3016, 2142, 3017, 2142, 3017, 2143, 3018, 2143, 3018, 2144, 3019, 2144, 3020, 2144, 3020, 2145, 3021, 2145}; int main () { unsigned int m=128; // number of words int g,h,i,j,l,n,a,b; unsigned int flag,flag1,o; for (i=0; i<5166; i++) { output[i]=0; // clear quotients shift[i]=0; // clear shift amounts } error[0]=0; // overflow indicator error[1]=0; // counter for (i=0; i<5166; i++) { error[1]=i; // set counter l=2*ab[2*i]+ab[2*i+1]+1; // length of loop n=ab[2*i]+ab[2*i+1]; // number of odd elements in loop if (n!=(n/d)*d) // continue if not divisor of n continue; setn(S, 0, m); // clear sum for (j=1; j<=l; j++) { a=j*n; if (a==((a/l)*l)) // a=(j*n)/l a=a/l; else a=(a/l)+1; b=(j-1)*n; if (b==((b/l)*l)) // b=((j-1)*n)/l b=b/l; else b=(b/l)+1; if ((a-b)>0x100000000) { // check for overflow error[0]=1; goto zskip; } setn(A, a-b, m); for (h=0; h<(n-a); h++) { // (a-b)*3**(n-a) copyn(A, B, m); addn(A, A, m); addn(B, A, m); } lshiftn(A, B, j-1, m); // (a-b)*2**(j-1)*3**(n-a) addn(B, S, m); // sum+=(a-b)*2**(j-1)*3**(n-a) if ((S[0]&0xc0000000)!=0) { // check for overflow error[0]=2; goto zskip; } } setn(A, 1, m); for (h=0; h<n; h++) { // 3**n copyn(A, B, m); addn(A, A, m); addn(B, A, m); if ((A[0]&0xc0000000)!=0) { // check for overflow error[0]=3; goto zskip; } } if ((unsigned int)l>=(32*m)) { // check for overflow error[0]=4; goto zskip; } setn(B, 1, m); lshiftn(B, T, l, m); // 2**l negn(A, m); addn(T, A, m); // 2**l-3**m flag=0; if ((A[0]&0x80000000)!=0) { // negate 2**l-3**n if negative negn(A, m); flag=1; } flag1=0; o=normn(A, m); // count to normalize divisor g=(int)(32*m)-(int)o-62; // right shift amount if (g>0) { rshiftn(S, T, g, m); rshiftn(A, B, g, m); // denormalize divisor flag1=g; // save shift amount } else { copyn(S, T, m); // copy dividend copyn(A, B, m); // copy divisor } o=orn(T, m-4); // check for overflow if ((o|(T[m-4]&0xc0000000))!=0) { error[0]=5; goto zskip; } div128_64(T[m-4],T[m-3],T[m-2],T[m-1],C,B[m-2],B[m-1]); // sum/(2**l-3**n) if ((C[0]|C[1]|C[2])!=0) { // check for overflow error[0]=6; goto zskip; } output[i]=C[3]; // save quotient if (flag!=0) // set "sign" bit output[i]|=0x80000000; shift[i]=flag1; // save shift amount } zskip: return(0); }