-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfugue.h
472 lines (469 loc) · 41.3 KB
/
fugue.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
//Data to play Bach's Little Fugue
const int t_delay=5000;
const int t_count=3674; //Number of events (notes on and off)
const int t_time[3674]= {
0,144,144,288,288,504,504,576,576,648,648,720,720,792,792,864,
864,936,936,1008,1008,1152,1152,1224,1224,1296,1296,1368,1368,1440,1440,1512,
1512,1548,1548,1584,1584,1656,1656,1728,1728,1800,1800,1836,1836,1872,1872,1944,
1944,1980,1980,2016,2016,2088,2088,2124,2124,2160,2160,2196,2196,2232,2232,2268,
2268,2304,2304,2340,2340,2376,2376,2412,2412,2448,2448,2484,2484,2520,2520,2556,
2556,2592,2592,2628,2628,2664,2664,2700,2700,2736,2736,2772,2772,2808,2808,2844,
2844,2880,2880,2880,2916,2916,2952,2952,2988,2988,3024,3024,3024,3024,3060,3060,
3096,3096,3132,3132,3168,3168,3168,3168,3240,3240,3312,3312,3384,3384,3384,3384,
3456,3456,3456,3456,3492,3492,3528,3528,3528,3528,3564,3564,3600,3600,3600,3600,
3618,3618,3636,3636,3654,3654,3672,3672,3672,3672,3690,3690,3708,3708,3726,3726,
3744,3744,3744,3744,3780,3780,3816,3816,3816,3816,3852,3852,3888,3888,3888,3888,
3924,3924,3960,3960,3996,3996,4032,4032,4032,4032,4068,4068,4104,4104,4104,4104,
4140,4140,4176,4176,4176,4176,4212,4212,4248,4248,4248,4248,4284,4284,4320,4320,
4320,4320,4356,4356,4392,4392,4392,4392,4428,4428,4428,4428,4464,4464,4464,4464,
4500,4500,4536,4536,4536,4536,4572,4572,4608,4608,4608,4608,4644,4644,4680,4680,
4680,4680,4716,4716,4716,4716,4752,4752,4752,4752,4788,4788,4824,4824,4824,4824,
4860,4860,4860,4860,4896,4896,4896,4896,4932,4932,4968,4968,4968,4968,5004,5004,
5004,5004,5040,5040,5040,5040,5076,5076,5076,5076,5112,5112,5112,5112,5148,5148,
5148,5148,5184,5184,5184,5184,5220,5220,5256,5256,5256,5256,5292,5292,5328,5328,
5328,5328,5364,5364,5400,5400,5400,5400,5436,5436,5472,5472,5472,5472,5508,5508,
5544,5544,5544,5544,5580,5580,5616,5616,5616,5616,5652,5652,5688,5688,5688,5688,
5724,5724,5760,5760,5760,5760,5796,5796,5832,5832,5832,5832,5868,5868,5904,5904,
5904,5940,5940,5976,5976,5976,6012,6012,6048,6048,6048,6048,6084,6084,6120,6120,
6120,6120,6156,6156,6192,6192,6192,6228,6228,6264,6264,6264,6300,6300,6336,6336,
6336,6336,6372,6372,6408,6408,6408,6408,6444,6444,6480,6480,6480,6480,6516,6516,
6552,6552,6552,6552,6588,6588,6624,6624,6624,6624,6624,6660,6660,6696,6696,6732,
6732,6768,6768,6768,6768,6768,6804,6804,6840,6840,6876,6876,6912,6912,6912,6912,
6984,7056,7056,7128,7128,7128,7128,7200,7200,7200,7200,7200,7236,7236,7272,7272,
7272,7272,7308,7308,7344,7344,7344,7344,7362,7362,7380,7380,7398,7398,7416,7416,
7416,7416,7434,7434,7452,7452,7470,7470,7488,7488,7488,7488,7524,7524,7560,7560,
7560,7560,7596,7596,7632,7632,7632,7632,7668,7668,7704,7704,7740,7740,7776,7776,
7776,7776,7776,7812,7812,7848,7848,7848,7848,7848,7884,7884,7920,7920,7920,7920,
7920,7956,7956,7992,7992,7992,7992,7992,8028,8028,8064,8064,8064,8064,8064,8100,
8100,8136,8136,8136,8136,8136,8172,8172,8172,8172,8208,8208,8208,8208,8208,8244,
8244,8280,8280,8280,8280,8280,8316,8316,8352,8352,8352,8352,8388,8424,8424,8424,
8424,8460,8460,8460,8460,8496,8496,8496,8496,8496,8532,8568,8568,8568,8568,8604,
8604,8604,8604,8640,8640,8640,8640,8640,8676,8712,8712,8712,8712,8748,8748,8748,
8748,8784,8784,8784,8784,8784,8820,8820,8820,8856,8856,8856,8856,8892,8892,8892,
8892,8928,8928,8928,8928,8928,8964,8964,9000,9000,9000,9036,9036,9072,9072,9072,
9072,9072,9108,9108,9144,9144,9144,9180,9180,9216,9216,9216,9216,9216,9252,9252,
9288,9288,9288,9324,9324,9360,9360,9360,9360,9360,9396,9396,9396,9396,9432,9432,
9432,9432,9468,9468,9468,9468,9504,9504,9504,9504,9504,9540,9540,9576,9576,9576,
9576,9612,9612,9648,9648,9648,9648,9648,9648,9684,9684,9720,9720,9720,9720,9756,
9756,9792,9792,9792,9792,9792,9792,9828,9828,9864,9864,9864,9864,9900,9900,9936,
9936,9936,9936,9972,9972,10008,10008,10008,10008,10008,10008,10044,10044,10080,10080,10080,
10080,10080,10080,10116,10116,10152,10152,10152,10152,10152,10188,10188,10224,10224,10224,10224,
10224,10242,10242,10260,10260,10278,10278,10296,10296,10296,10296,10296,10314,10314,10332,10332,
10350,10350,10368,10368,10368,10368,10368,10404,10404,10440,10440,10440,10440,10440,10476,10476,
10512,10512,10512,10512,10548,10548,10584,10584,10584,10620,10620,10656,10656,10656,10656,10656,
10656,10674,10674,10692,10692,10692,10692,10710,10710,10728,10728,10728,10728,10728,10728,10746,
10746,10764,10764,10764,10764,10782,10782,10800,10800,10800,10800,10800,10800,10818,10818,10836,
10836,10836,10836,10854,10854,10872,10872,10872,10872,10872,10872,10890,10890,10908,10908,10908,
10908,10926,10926,10944,10944,10944,10944,10944,10944,10962,10962,10980,10980,10980,10980,10998,
10998,11016,11016,11016,11016,11016,11016,11034,11034,11052,11052,11052,11052,11052,11052,11070,
11070,11088,11088,11088,11088,11088,11088,11106,11106,11124,11124,11124,11124,11142,11142,11160,
11160,11160,11160,11160,11160,11178,11178,11196,11196,11196,11196,11214,11214,11232,11232,11232,
11232,11232,11232,11250,11250,11268,11268,11268,11268,11286,11286,11304,11304,11304,11304,11304,
11304,11322,11322,11340,11340,11340,11340,11340,11340,11358,11358,11376,11376,11376,11376,11376,
11376,11394,11394,11412,11412,11412,11412,11430,11430,11448,11448,11448,11448,11448,11448,11466,
11466,11484,11484,11484,11484,11484,11484,11502,11502,11520,11520,11520,11520,11520,11520,11538,
11538,11556,11556,11556,11556,11574,11574,11592,11592,11592,11592,11592,11592,11610,11610,11628,
11628,11628,11628,11628,11628,11646,11646,11664,11664,11664,11664,11664,11664,11682,11682,11700,
11700,11700,11700,11718,11718,11736,11736,11736,11736,11736,11736,11754,11754,11772,11772,11772,
11772,11790,11790,11808,11808,11808,11808,11808,11808,11826,11826,11844,11844,11880,11880,11880,
11880,11880,11880,11916,11916,11916,11916,11952,11952,11952,11952,11952,11952,11970,11970,11988,
11988,11988,11988,12006,12006,12024,12024,12024,12024,12042,12042,12060,12060,12060,12060,12096,
12096,12096,12096,12096,12096,12132,12132,12168,12168,12168,12204,12204,12240,12240,12240,12240,
12240,12276,12276,12312,12312,12312,12312,12348,12348,12384,12384,12384,12384,12384,12420,12420,
12456,12456,12456,12492,12492,12528,12528,12528,12528,12564,12564,12600,12600,12600,12600,12636,
12636,12672,12672,12672,12672,12708,12708,12744,12744,12744,12744,12780,12780,12816,12816,12816,
12816,12852,12852,12888,12888,12888,12888,12924,12924,12960,12960,12960,12960,12996,12996,13032,
13032,13032,13032,13068,13068,13104,13104,13104,13104,13140,13140,13176,13176,13176,13176,13212,
13212,13248,13248,13248,13248,13284,13284,13320,13320,13356,13356,13392,13392,13392,13392,13428,
13428,13464,13464,13500,13500,13536,13536,13536,13572,13608,13608,13644,13644,13680,13680,13680,
13680,13716,13716,13752,13752,13788,13788,13824,13824,13824,13824,13824,13860,13860,13896,13896,
13932,13932,13968,13968,13968,13968,14004,14004,14040,14040,14076,14076,14112,14112,14112,14112,
14148,14148,14184,14184,14220,14220,14256,14256,14292,14292,14328,14328,14328,14328,14364,14364,
14400,14400,14400,14400,14436,14436,14436,14436,14472,14472,14472,14472,14508,14508,14508,14508,
14544,14544,14544,14544,14580,14580,14580,14580,14616,14616,14616,14616,14652,14652,14652,14652,
14688,14688,14688,14688,14724,14724,14760,14760,14760,14796,14796,14832,14832,14832,14832,14868,
14868,14904,14904,14904,14904,14904,14904,14940,14940,14976,14976,14976,14976,14976,14976,15012,
15012,15048,15048,15048,15048,15048,15084,15084,15120,15120,15120,15120,15120,15138,15138,15156,
15156,15174,15174,15192,15192,15192,15192,15192,15210,15210,15228,15228,15246,15246,15264,15264,
15264,15264,15264,15300,15300,15336,15336,15336,15336,15336,15336,15372,15372,15408,15408,15408,
15408,15408,15408,15444,15444,15480,15480,15516,15516,15552,15552,15552,15552,15588,15588,15624,
15624,15624,15624,15660,15660,15696,15696,15696,15696,15732,15732,15768,15768,15768,15768,15804,
15804,15840,15840,15840,15840,15876,15876,15912,15912,15912,15912,15948,15948,15948,15948,15984,
15984,15984,15984,16020,16020,16056,16056,16056,16056,16092,16092,16128,16128,16128,16128,16164,
16164,16200,16200,16200,16200,16236,16236,16236,16236,16272,16272,16272,16272,16308,16308,16344,
16344,16344,16344,16380,16380,16380,16380,16416,16416,16416,16416,16452,16452,16488,16488,16488,
16488,16524,16524,16524,16524,16560,16560,16560,16560,16596,16596,16596,16596,16632,16632,16632,
16632,16668,16668,16668,16668,16704,16704,16704,16704,16740,16740,16776,16776,16776,16776,16812,
16812,16848,16848,16848,16848,16884,16884,16884,16884,16920,16920,16920,16920,16956,16956,16956,
16956,16992,16992,16992,16992,17028,17028,17064,17064,17100,17100,17136,17136,17136,17136,17172,
17172,17172,17172,17208,17208,17208,17208,17244,17244,17244,17244,17280,17280,17280,17280,17316,
17316,17352,17352,17388,17388,17424,17424,17424,17424,17460,17460,17460,17460,17496,17496,17496,
17496,17532,17532,17532,17532,17568,17568,17568,17568,17604,17604,17640,17640,17676,17676,17712,
17712,17712,17712,17748,17748,17748,17748,17784,17784,17784,17784,17820,17820,17820,17820,17856,
17856,17856,17856,17856,17856,17892,17892,17928,17928,17928,17928,17964,17964,18000,18000,18000,
18000,18036,18036,18072,18072,18072,18072,18108,18108,18144,18144,18144,18144,18144,18144,18180,
18180,18216,18216,18216,18216,18252,18252,18288,18288,18288,18288,18288,18324,18324,18360,18360,
18360,18360,18396,18396,18432,18432,18432,18432,18432,18468,18468,18504,18504,18540,18540,18576,
18576,18576,18576,18576,18612,18612,18648,18648,18684,18684,18720,18720,18720,18720,18756,18756,
18792,18792,18792,18828,18828,18864,18864,18864,18864,18900,18900,18936,18936,18936,18936,18936,
18936,18972,18972,19008,19008,19008,19008,19008,19008,19044,19044,19080,19080,19080,19080,19116,
19116,19152,19152,19152,19152,19170,19170,19188,19188,19206,19206,19224,19224,19224,19224,19242,
19242,19260,19260,19278,19278,19296,19296,19296,19296,19296,19296,19332,19332,19368,19368,19368,
19368,19404,19404,19440,19440,19440,19440,19440,19476,19476,19512,19512,19512,19548,19548,19584,
19584,19584,19584,19584,19584,19620,19620,19656,19656,19656,19656,19692,19692,19728,19728,19728,
19728,19764,19764,19800,19800,19800,19800,19836,19836,19872,19872,19872,19872,19908,19908,19944,
19944,19944,19944,19980,19980,19980,19980,20016,20016,20016,20016,20052,20052,20088,20088,20088,
20088,20124,20124,20160,20160,20160,20160,20196,20196,20232,20232,20232,20232,20268,20268,20268,
20268,20304,20304,20304,20304,20340,20340,20376,20376,20376,20376,20412,20412,20412,20412,20448,
20448,20448,20448,20484,20484,20520,20520,20520,20520,20556,20556,20556,20556,20592,20592,20592,
20592,20628,20628,20628,20628,20664,20664,20664,20664,20700,20700,20700,20700,20736,20736,20736,
20736,20772,20772,20772,20772,20808,20808,20808,20808,20844,20844,20844,20844,20880,20880,20880,
20880,20916,20916,20916,20916,20952,20952,20952,20952,20988,20988,20988,20988,21024,21024,21024,
21024,21024,21060,21060,21096,21096,21096,21096,21132,21132,21168,21168,21168,21204,21204,21240,
21240,21240,21276,21276,21312,21312,21312,21312,21348,21348,21384,21384,21384,21384,21420,21420,
21456,21456,21456,21492,21492,21528,21528,21528,21564,21564,21600,21600,21600,21600,21636,21636,
21672,21672,21672,21672,21708,21708,21744,21744,21744,21744,21780,21780,21816,21816,21816,21816,
21852,21852,21888,21888,21888,21888,21924,21924,21960,21960,21960,21960,21996,21996,22032,22032,
22032,22068,22068,22104,22104,22104,22140,22140,22176,22176,22176,22176,22212,22212,22248,22248,
22248,22248,22284,22284,22320,22320,22320,22356,22356,22392,22392,22392,22428,22428,22464,22464,
22464,22464,22500,22500,22536,22536,22536,22536,22572,22572,22608,22608,22608,22644,22644,22680,
22680,22680,22716,22716,22752,22752,22752,22752,22788,22788,22788,22788,22824,22824,22824,22824,
22860,22860,22860,22860,22896,22896,22896,22896,22932,22932,22932,22932,22968,22968,22968,22968,
23004,23004,23004,23004,23040,23040,23040,23040,23040,23076,23076,23076,23076,23112,23112,23112,
23112,23148,23148,23148,23148,23184,23184,23184,23184,23184,23184,23220,23220,23220,23220,23256,
23256,23256,23256,23292,23292,23292,23292,23328,23328,23328,23328,23328,23328,23364,23364,23364,
23364,23400,23400,23400,23400,23436,23436,23436,23436,23472,23472,23472,23472,23508,23508,23508,
23508,23544,23544,23544,23544,23544,23544,23580,23580,23580,23580,23616,23616,23616,23616,23616,
23616,23652,23652,23652,23652,23688,23688,23688,23688,23688,23688,23724,23724,23724,23724,23760,
23760,23760,23760,23760,23760,23778,23778,23778,23778,23796,23796,23796,23796,23814,23814,23814,
23814,23832,23832,23832,23832,23832,23832,23850,23850,23850,23850,23868,23868,23868,23868,23886,
23886,23886,23886,23904,23904,23904,23904,23904,23904,23940,23940,23940,23940,23976,23976,23976,
23976,23976,23976,24012,24012,24012,24012,24048,24048,24048,24048,24048,24048,24084,24084,24120,
24120,24120,24120,24156,24156,24192,24192,24192,24192,24192,24192,24210,24210,24228,24228,24228,
24228,24246,24246,24264,24264,24264,24264,24264,24264,24282,24282,24300,24300,24300,24300,24318,
24318,24336,24336,24336,24336,24336,24336,24354,24354,24372,24372,24372,24372,24390,24390,24408,
24408,24408,24408,24408,24408,24426,24426,24444,24444,24444,24444,24462,24462,24480,24480,24480,
24480,24480,24480,24498,24498,24516,24516,24516,24516,24534,24534,24552,24552,24552,24552,24552,
24552,24570,24570,24588,24588,24588,24588,24588,24588,24606,24606,24624,24624,24624,24624,24624,
24624,24642,24642,24660,24660,24660,24660,24678,24678,24696,24696,24696,24696,24696,24696,24714,
24714,24732,24732,24732,24732,24750,24750,24768,24768,24768,24768,24768,24768,24786,24786,24804,
24804,24804,24804,24822,24822,24840,24840,24840,24840,24840,24840,24858,24858,24876,24876,24876,
24876,24876,24876,24894,24894,24912,24912,24912,24912,24912,24912,24930,24930,24948,24948,24948,
24948,24966,24966,24984,24984,24984,24984,24984,24984,25002,25002,25020,25020,25020,25020,25020,
25020,25038,25038,25056,25056,25056,25056,25056,25056,25074,25074,25092,25092,25092,25092,25110,
25110,25128,25128,25128,25128,25128,25128,25146,25146,25164,25164,25164,25164,25164,25164,25182,
25182,25200,25200,25200,25200,25200,25200,25218,25218,25236,25236,25236,25236,25254,25254,25272,
25272,25272,25272,25272,25272,25290,25290,25308,25308,25308,25308,25326,25326,25344,25344,25344,
25344,25344,25344,25362,25362,25380,25380,25380,25380,25416,25416,25416,25416,25416,25416,25452,
25452,25452,25452,25488,25488,25488,25488,25488,25488,25524,25524,25560,25560,25560,25560,25596,
25596,25596,25596,25632,25632,25632,25632,25632,25632,25668,25668,25704,25704,25704,25740,25740,
25776,25776,25776,25776,25776,25812,25812,25848,25848,25848,25848,25884,25884,25920,25920,25920,
25920,25920,25956,25956,25992,25992,25992,25992,26028,26028,26064,26064,26064,26064,26064,26100,
26100,26136,26136,26136,26136,26172,26172,26208,26208,26208,26208,26208,26244,26244,26280,26280,
26280,26280,26316,26316,26352,26352,26352,26352,26352,26388,26388,26424,26424,26424,26424,26460,
26460,26496,26496,26496,26496,26496,26532,26532,26568,26568,26568,26568,26604,26604,26640,26640,
26640,26640,26640,26676,26676,26712,26712,26712,26712,26748,26748,26784,26784,26784,26784,26784,
26820,26820,26856,26856,26856,26856,26892,26892,26928,26928,26928,26928,26928,26964,26964,27000,
27000,27000,27000,27036,27036,27072,27072,27072,27072,27072,27108,27108,27144,27144,27144,27144,
27180,27180,27216,27216,27216,27216,27216,27252,27252,27288,27288,27288,27288,27324,27324,27360,
27360,27360,27360,27360,27396,27396,27432,27432,27468,27468,27504,27504,27504,27504,27504,27504,
27540,27540,27576,27576,27612,27612,27648,27648,27648,27648,27648,27648,27684,27684,27720,27720,
27756,27756,27792,27792,27792,27792,27828,27828,27864,27864,27900,27900,27936,27936,27936,27972,
27972,28008,28008,28008,28044,28044,28080,28080,28080,28080,28080,28116,28116,28152,28152,28152,
28152,28188,28188,28224,28224,28224,28224,28224,28260,28260,28296,28296,28296,28296,28332,28332,
28368,28368,28368,28368,28404,28404,28440,28440,28440,28476,28476,28512,28512,28512,28512,28512,
28548,28548,28584,28584,28584,28620,28620,28656,28656,28656,28656,28692,28692,28728,28728,28764,
28764,28800,28800,28800,28800,28800,28800,28836,28836,28872,28872,28872,28872,28908,28908,28944,
28944,28944,28944,28980,28980,29016,29016,29016,29016,29016,29016,29052,29052,29088,29088,29088,
29088,29088,29088,29124,29124,29160,29160,29160,29160,29196,29196,29232,29232,29232,29232,29232,
29232,29268,29268,29304,29304,29304,29304,29340,29340,29376,29376,29376,29376,29376,29376,29412,
29412,29448,29448,29448,29448,29484,29484,29520,29520,29520,29520,29556,29556,29592,29592,29592,
29592,29628,29628,29664,29664,29664,29664,29664,29664,29700,29700,29736,29736,29736,29736,29772,
29772,29808,29808,29808,29808,29844,29844,29880,29880,29880,29880,29916,29916,29952,29952,29952,
29952,29988,29988,30024,30024,30024,30024,30060,30060,30060,30060,30096,30096,30096,30096,30132,
30132,30168,30168,30168,30168,30204,30204,30240,30240,30240,30240,30276,30276,30312,30312,30312,
30312,30348,30348,30348,30348,30384,30384,30384,30384,30420,30420,30456,30456,30456,30456,30492,
30492,30492,30492,30528,30528,30528,30528,30564,30564,30600,30600,30600,30600,30636,30636,30636,
30636,30672,30672,30672,30672,30708,30708,30708,30708,30744,30744,30744,30744,30780,30780,30780,
30780,30816,30816,30816,30816,30852,30852,30888,30888,30888,30888,30888,30888,30924,30924,30960,
30960,30960,30960,30960,30960,30996,30996,30996,30996,31032,31032,31032,31032,31032,31032,31068,
31068,31068,31068,31104,31104,31104,31104,31104,31104,31140,31140,31176,31176,31176,31212,31212,
31248,31248,31248,31248,31248,31248,31284,31284,31320,31320,31320,31320,31356,31356,31392,31392,
31392,31392,31428,31428,31464,31464,31464,31500,31500,31536,31536,31536,31536,31536,31572,31572,
31608,31608,31608,31608,31644,31644,31680,31680,31680,31680,31716,31716,31752,31752,31752,31788,
31788,31824,31824,31824,31824,31860,31860,31896,31896,31896,31896,31932,31932,31968,31968,31968,
31968,32004,32004,32040,32040,32040,32040,32076,32076,32112,32112,32112,32112,32112,32148,32148,
32184,32184,32184,32184,32220,32220,32256,32256,32256,32256,32292,32292,32328,32328,32328,32364,
32364,32400,32400,32400,32400,32436,32436,32472,32472,32472,32472,32508,32508,32544,32544,32544,
32544,32580,32580,32616,32616,32616,32616,32652,32652,32688,32688,32688,32688,32688,32724,32724,
32760,32760,32760,32760,32796,32796,32832,32832,32832,32832,32832,32868,32868,32904,32904,32904,
32904,32940,32940,32976,32976,32976,32976,32976,33012,33012,33048,33048,33048,33048,33084,33084,
33120,33120,33120,33120,33120,33156,33156,33192,33192,33192,33192,33228,33228,33264,33264,33264,
33264,33264,33300,33300,33336,33336,33336,33336,33372,33372,33408,33408,33408,33408,33408,33444,
33444,33480,33480,33480,33480,33516,33516,33552,33552,33552,33552,33552,33552,33588,33588,33624,
33624,33624,33624,33660,33660,33696,33696,33696,33696,33732,33732,33768,33768,33768,33768,33804,
33804,33840,33840,33840,33840,33840,33840,33876,33876,33912,33912,33912,33912,33948,33948,33984,
33984,33984,33984,34020,34020,34056,34056,34056,34056,34092,34092,34128,34128,34128,34128,34128,
34128,34164,34164,34200,34200,34200,34200,34236,34236,34272,34272,34272,34272,34308,34308,34344,
34344,34344,34344,34380,34380,34416,34416,34416,34416,34416,34416,34452,34452,34488,34488,34488,
34488,34524,34524,34560,34560,34560,34560,34596,34596,34632,34632,34668,34668,34704,34704,34704,
34704,34704,34704,34740,34740,34776,34776,34776,34776,34776,34776,34812,34812,34848,34848,34848,
34848,34848,34848,34884,34884,34920,34920,34956,34956,34992,34992,34992,34992,35028,35028,35064,
35064,35064,35064,35100,35100,35136,35136,35136,35136,35172,35172,35208,35208,35244,35244,35280,
35280,35280,35280,35316,35316,35352,35352,35388,35388,35424,35424,35424,35424,35460,35460,35496,
35496,35532,35532,35568,35568,35568,35568,35604,35604,35640,35640,35676,35676,35712,35712,35712,
35712,35748,35748,35784,35784,35820,35820,35856,35856,35856,35856,35892,35892,35928,35928,35964,
35964,36000,36000,36000,36000,36000,36000,36000,36036,36036,36036,36036,36072,36072,36072,36072,
36108,36108,36108,36108,36144,36144,36144,36144,36144,36144,36144,36180,36180,36180,36180,36216,
36216,36216,36216,36252,36252,36252,36252,36288,36288,36288,36288,36288,36288,36324,36324,36360,
36360,36360,36396,36396,36432,36432,36432,36432,36468,36468,36504,36504,36504,36504,36504,36504,
36504,36504,36540,36540,36576,36576,36576,36576,36576,36576,36576,36576,36612,36612,36648,36648,
36648,36648,36648,36648,36684,36684,36720,36720,36720,36720,36720,36720,36720,36720,36756,36756,
36792,36792,36792,36792,36792,36792,36792,36792,36828,36828,36864,36864,36864,36864,36864,36864,
36864,36864,36900,36900,36936,36936,36936,36936,36972,36972,37008,37008,37008,37008,37008,37008,
37044,37044,37080,37080,37080,37080,37116,37116,37152,37152,37152,37152,37152,37152,37152,37152,
37188,37188,37224,37224,37224,37224,37224,37260,37260,37296,37296,37296,37296,37296,37332,37332,
37368,37368,37368,37368,37368,37404,37404,37440,37440,37440,37440,37440,37476,37476,37512,37512,
37512,37512,37512,37548,37548,37548,37548,37584,37584,37584,37584,37584,37620,37620,37656,37656,
37656,37656,37656,37692,37692,37728,37728,37728,37728,37728,37764,37764,37800,37800,37800,37800,
37800,37836,37836,37836,37836,37872,37872,37872,37872,37872,37908,37908,37944,37944,37944,37944,
37944,37980,37980,37980,37980,38016,38016,38016,38016,38016,38052,38052,38088,38088,38088,38088,
38088,38124,38124,38124,38124,38160,38160,38160,38160,38160,38196,38196,38232,38232,38232,38232,
38232,38268,38268,38304,38304,38304,38304,38304,38376,38376,38376,38376,38376,38376,38376,38376,
38448,38448,38448,38448,38448,38448,38520,38520,38520,38520,38520,38520,38520,38520,38592,38592,
38592,38592,38592,38592,38592,38592,38879,38879,38879,38879
};
extern const int t_onoff[3674]= {
1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,
1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,
1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,0,0,
1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,
1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,
1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,
0,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,
1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,
0,1,0,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,
0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,0,1,
0,1,1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,0,0,1,0,1,1,
0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,
0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,1,0,
0,1,0,1,1,0,0,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,
0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,
1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,0,1,1,0,
0,1,1,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,0,
1,1,0,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,1,0,1,1,0,
0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,
1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,1,0,1,1,1,0,
0,1,0,1,0,1,0,1,1,0,0,0,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,
1,1,0,0,1,0,1,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,
0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,
0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,
0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,
0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,
0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,
0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,
1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,
0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,
1,1,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,
1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,
0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,
0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,
0,1,0,1,0,1,0,1,1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,
1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,
1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,1,
0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,1,0,1,1,1,0,0,1,0,1,
0,1,0,1,1,0,0,0,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,
0,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,
0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,
0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,
0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,
0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,
1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,
1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,
0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,0,1,0,1,
1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,1,0,1,1,1,0,0,
0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,
0,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1,
1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,
1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,
0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,
1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,0,0,1,0,
1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,
0,1,0,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,
0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,
1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,
0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,
0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,
0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,
0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,
0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,
0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,
1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,
0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,
0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,
0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,
0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,
0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,
0,0,0,1,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,1,0,0,1,
1,0,0,1,1,1,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,
0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,1,
0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,0,1,1,
0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,
1,0,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,
1,1,0,0,1,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,
1,0,1,0,0,0,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,
0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,1,0,0,
1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,
1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,
0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,
0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,
0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,
0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,0,
1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,
0,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,1,0,1,0,1,1,0,
0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,
1,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,
0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,1,
0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,
1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,
1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,0,1,1,
1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,
1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,
0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,1,
0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,0,0,
1,0,1,1,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,
0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,
1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,0,1,
1,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,1,0,1,0,1,1,0,0,1,0,1,1,1,1,0,0,0,
0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,
1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,0,1,0,1,
1,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,0,0,0,1,0,1,1,1,0,0,1,0,1,1,0,0,
0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,
1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,1,
1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,1,0,
0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,
0,0
};
extern const int t_note[3674]= {
67,74,67,70,74,69,70,67,69,70,67,69,70,67,69,66,67,69,66,62,69,67,62,62,67,69,62,62,69,70,62,69,
70,67,69,69,67,62,69,67,62,62,67,67,62,69,67,62,69,69,62,70,69,69,70,67,69,69,67,62,69,74,62,72,
74,70,72,69,70,67,69,70,67,69,70,67,69,66,67,69,66,67,69,62,67,67,62,69,67,70,69,72,70,74,72,76,
74,77,62,76,76,77,74,76,77,74,76,69,62,77,74,76,73,74,76,73,74,65,69,76,69,74,74,69,76,64,65,74,
77,62,76,64,79,77,77,65,62,79,79,77,79,64,65,79,81,79,79,81,81,79,79,62,64,81,81,79,77,81,79,77,
81,61,62,79,79,81,81,64,61,79,82,81,81,57,64,82,79,81,77,79,76,77,77,62,57,76,81,77,79,57,62,81,
81,79,73,64,57,81,81,73,79,57,64,81,81,79,74,65,57,81,81,74,79,64,65,81,81,62,79,64,73,64,81,62,
81,73,79,57,64,81,81,79,77,62,57,81,74,77,73,57,62,74,74,62,73,57,79,64,74,62,74,79,73,57,64,74,
74,64,73,57,81,65,74,64,74,81,73,64,65,74,74,62,73,64,79,64,74,62,74,57,79,64,73,69,74,57,74,67,
73,69,69,65,74,67,64,65,77,62,69,64,65,62,67,64,77,65,62,64,76,61,67,62,64,61,65,62,76,64,57,62,
69,62,65,57,64,62,74,65,69,64,67,65,77,69,74,67,71,69,75,72,77,71,70,72,81,72,75,70,74,72,72,81,
74,70,72,75,69,70,72,69,74,70,75,72,69,70,79,70,74,69,72,70,70,79,72,69,70,74,67,69,70,67,72,69,
74,70,70,72,72,67,69,70,74,72,72,66,67,74,81,72,79,62,66,81,81,79,70,67,55,62,81,79,70,78,79,79,
78,69,62,67,55,79,78,69,76,78,78,76,79,58,62,78,62,67,62,69,57,58,67,70,55,79,69,57,72,70,70,58,
55,72,72,70,72,57,58,72,74,72,72,74,74,72,72,55,57,74,74,72,70,74,72,70,74,54,55,72,72,74,74,57,
54,72,75,74,74,50,57,75,72,74,70,72,69,70,70,62,55,50,69,74,70,72,50,62,55,74,74,72,66,60,57,50,
74,74,66,72,50,60,57,74,74,72,67,62,58,50,74,74,67,72,57,62,58,74,74,55,72,57,66,60,57,74,55,74,
66,72,50,60,57,74,74,72,70,55,50,74,67,66,50,55,67,67,55,66,50,72,57,70,67,55,67,66,50,57,67,67,
57,66,50,74,58,72,67,57,67,66,57,58,67,67,55,66,57,72,57,74,67,55,67,50,57,66,62,67,50,67,60,66,
62,62,58,72,67,60,57,58,70,55,57,58,55,60,57,62,70,58,55,57,69,54,55,57,54,58,55,60,69,57,50,55,
62,55,50,57,55,67,58,58,62,57,69,60,67,58,70,62,69,60,67,64,70,62,50,69,65,67,64,64,65,74,62,69,
64,65,62,57,73,64,50,74,65,62,64,76,61,73,62,64,61,53,81,62,57,76,64,82,81,81,57,62,82,79,81,77,
62,57,79,76,77,52,74,64,53,62,76,73,74,50,74,65,52,64,73,67,65,53,65,50,74,67,67,65,52,82,67,53,
67,69,67,67,69,69,67,50,67,52,82,69,69,67,65,69,67,65,49,76,69,50,67,67,69,52,69,49,76,67,70,69,
45,69,52,70,67,69,81,65,67,64,65,50,81,65,45,81,64,82,81,81,69,65,82,82,81,45,81,67,50,69,82,82,
81,81,69,67,82,82,81,52,81,61,45,69,82,82,81,81,69,61,82,82,81,45,81,67,52,69,82,82,81,81,69,67,
82,82,81,53,81,62,45,69,82,82,81,81,69,62,82,82,81,52,81,67,53,69,82,82,81,50,81,69,52,67,82,82,
81,52,81,61,50,69,82,82,81,81,69,61,82,82,81,45,81,67,52,69,82,82,81,81,69,67,82,82,81,50,81,65,
45,69,82,82,81,81,62,65,82,82,81,45,81,61,50,62,82,82,81,50,81,62,45,61,82,82,81,52,81,67,50,62,
82,82,81,81,62,67,82,82,81,45,81,61,52,62,82,82,81,52,81,62,45,61,82,82,81,53,81,69,52,62,82,82,
81,81,62,69,82,82,81,52,81,61,53,62,82,82,81,50,81,62,52,61,82,82,81,52,81,67,50,62,82,82,81,81,
62,67,82,82,81,45,81,61,52,62,82,82,81,81,62,61,82,82,81,50,81,65,45,62,82,82,81,79,82,43,81,64,
50,65,79,82,62,81,64,45,81,61,43,82,62,62,61,79,61,81,62,62,61,77,61,79,62,62,61,76,62,77,62,38,
77,62,45,76,62,60,62,69,62,60,63,62,74,62,38,69,63,60,62,72,58,74,60,57,58,70,55,77,72,57,53,55,
74,55,53,57,55,79,55,74,57,53,55,77,51,79,53,50,51,75,60,77,50,58,60,67,60,70,58,62,60,72,60,67,
62,58,60,70,57,72,58,55,57,69,53,70,55,51,53,72,53,75,51,55,53,77,53,72,55,51,53,75,50,77,51,48,
50,74,46,75,48,58,46,60,58,62,60,67,63,69,62,79,74,78,79,79,78,72,63,79,57,58,57,60,58,66,62,67,
60,70,72,69,70,72,69,70,55,66,62,72,69,70,67,69,70,67,69,62,55,70,67,69,66,67,69,66,67,58,62,69,
62,67,64,62,66,64,67,66,62,67,67,57,58,62,69,67,70,55,57,69,67,58,70,55,70,57,67,58,72,55,70,57,
74,54,72,55,69,55,74,54,74,52,69,55,72,54,74,52,70,55,72,54,50,55,43,52,50,54,52,55,55,43,54,50,
55,53,69,55,70,55,50,57,55,51,67,58,53,69,57,60,58,70,58,51,67,60,60,58,39,69,60,70,60,62,60,60,
62,62,60,67,60,39,69,62,62,60,58,62,60,58,38,66,62,67,60,60,62,50,69,62,38,66,60,63,62,50,62,62,
50,69,63,60,62,58,60,57,58,67,58,62,57,62,58,62,60,67,62,62,60,69,54,62,62,62,54,62,60,69,62,62,
60,70,55,62,62,62,55,69,60,70,62,67,62,69,60,69,54,67,62,62,54,62,60,69,62,62,60,67,58,62,62,55,
58,62,54,67,55,67,55,62,54,69,60,67,55,55,60,62,54,69,55,69,55,62,54,70,62,69,55,55,62,69,54,70,
55,67,55,69,54,69,60,67,55,62,55,69,60,74,54,62,55,72,55,74,54,70,55,72,55,69,70,67,58,55,69,70,
67,69,60,58,70,67,58,69,60,66,57,67,58,69,60,66,57,67,58,69,60,70,67,72,70,74,72,48,75,50,74,70,
62,58,75,69,60,70,62,67,58,69,60,66,57,67,58,69,66,70,69,72,70,46,74,48,72,69,60,57,74,67,58,69,
60,65,57,67,58,63,55,65,57,67,63,69,67,70,69,45,72,46,70,67,58,55,72,65,57,67,58,63,55,65,57,46,
62,53,45,63,55,65,62,45,67,46,65,69,67,43,70,45,69,74,70,72,52,53,74,70,72,41,69,53,43,52,70,72,
69,74,51,53,72,75,74,77,50,41,51,75,79,77,77,48,50,79,75,77,74,58,46,48,75,77,74,75,77,74,75,72,
65,58,46,74,70,72,69,70,72,69,70,62,65,72,65,70,67,60,65,69,67,70,58,60,69,72,70,70,60,57,62,58,
72,72,70,74,58,55,60,57,72,76,74,74,62,58,76,76,74,76,60,62,76,77,76,76,77,77,76,76,58,60,77,77,
76,74,77,76,74,77,57,53,55,58,76,75,77,77,60,57,75,79,77,77,53,53,60,79,75,77,74,65,75,72,74,74,
65,58,53,65,72,77,74,75,53,58,77,77,75,69,60,53,77,77,69,75,53,60,77,77,75,70,62,53,77,77,70,75,
60,62,77,77,58,75,60,69,60,77,58,77,69,75,53,60,77,77,75,74,58,53,77,70,74,69,53,58,70,70,58,69,
53,75,60,70,58,70,75,69,53,60,70,70,60,69,53,77,62,70,60,70,77,69,60,62,70,70,58,69,60,75,60,70,
58,70,53,75,60,69,65,70,53,72,63,65,69,70,62,72,63,72,60,70,62,74,58,72,60,70,62,74,58,75,60,70,
62,74,58,75,60,72,57,74,58,75,60,72,57,74,58,65,75,60,72,74,74,67,58,72,75,74,74,67,75,72,74,70,
55,72,74,70,72,57,55,74,70,72,72,65,57,70,74,72,72,65,74,70,72,69,53,70,72,69,70,55,53,72,69,70,
70,65,55,69,72,70,70,60,65,72,69,70,67,64,60,69,70,67,69,65,64,70,63,65,77,65,69,63,67,65,65,77,
67,63,65,68,62,63,65,62,67,63,68,65,62,63,75,63,67,62,65,63,63,75,65,62,63,67,60,62,63,60,65,62,
67,63,60,62,74,62,65,60,63,62,62,74,63,60,62,65,58,60,62,58,63,60,65,62,67,58,63,60,72,60,67,58,
70,62,72,60,69,60,70,62,67,58,69,60,65,57,67,58,63,60,65,57,46,62,58,63,60,63,60,62,58,65,62,63,
60,67,58,65,62,53,69,60,46,67,58,70,62,69,60,72,63,70,62,69,60,72,63,50,70,62,53,69,60,65,60,70,
62,67,58,65,60,69,60,67,58,70,62,69,60,72,63,70,62,48,70,62,50,72,63,72,63,70,62,46,74,65,48,72,
63,76,67,74,65,50,74,65,46,76,67,76,67,74,65,48,76,67,50,76,67,77,69,76,67,76,67,77,69,77,69,76,
67,46,76,67,48,77,69,77,69,76,67,74,65,77,69,76,67,74,65,45,77,69,46,76,67,75,67,77,69,48,77,69,
45,75,67,79,70,77,69,41,77,69,48,79,70,67,69,77,65,77,67,63,65,46,77,62,41,77,63,79,77,77,65,62,
79,79,77,41,77,63,46,65,79,79,77,77,65,63,79,79,77,48,77,57,41,65,79,79,77,77,65,57,79,79,77,41,
77,63,48,65,79,79,77,77,65,63,79,79,77,50,77,58,41,65,79,79,77,77,65,58,79,79,77,48,77,63,50,65,
79,79,77,46,77,65,48,63,79,79,77,48,77,57,46,65,79,79,77,77,65,57,79,79,77,41,77,63,48,65,79,79,
77,77,65,63,79,79,77,46,77,62,41,65,79,79,77,77,70,62,79,79,77,41,77,69,46,70,79,79,77,46,77,70,
41,69,79,79,77,48,77,63,46,70,79,79,77,77,70,63,79,79,77,41,77,69,48,70,79,79,77,48,77,70,41,69,
79,79,77,50,77,65,48,70,79,79,77,77,70,65,79,79,77,48,77,69,50,70,79,79,77,46,77,70,48,69,79,79,
77,48,77,63,46,70,79,79,77,77,70,63,79,79,77,41,77,69,48,70,79,79,77,77,70,69,79,79,77,50,77,70,
41,70,79,79,77,75,74,70,79,51,77,72,50,75,74,79,70,77,72,53,72,69,51,79,70,67,69,41,65,53,67,81,
63,72,65,46,82,62,41,81,63,81,82,82,65,81,84,82,82,70,46,65,84,81,82,79,69,70,81,77,79,48,75,67,
69,77,74,75,75,55,62,74,77,75,75,60,48,55,77,74,75,72,58,60,74,70,72,41,81,57,58,70,79,81,81,60,
67,79,82,81,81,69,41,60,82,79,81,77,67,69,79,75,77,46,74,65,67,75,72,74,74,53,57,72,75,74,74,58,
46,53,75,72,74,70,57,58,72,69,70,39,79,55,57,69,77,79,79,58,65,77,80,79,79,67,39,58,80,77,79,75,
65,67,77,74,75,44,72,63,65,74,71,72,72,51,55,71,74,72,72,56,44,51,74,74,72,75,55,56,74,72,75,38,
77,53,55,72,63,63,62,63,60,62,43,59,55,38,53,60,80,77,79,80,77,79,36,75,60,43,59,77,55,55,57,55,
59,57,60,36,60,59,62,60,63,62,60,63,41,56,60,72,75,74,60,72,75,74,77,68,41,60,75,79,77,80,65,68,
79,77,80,43,71,55,56,77,72,71,74,57,55,72,71,74,67,59,57,71,65,65,63,67,65,62,63,72,63,60,59,62,
62,63,60,60,62,63,60,79,62,72,63,60,62,59,60,62,59,36,75,60,43,79,62,55,60,43,60,36,55,62,60,48,
63,43,62,65,63,50,74,63,75,48,65,65,63,51,72,67,50,74,65,63,67,75,60,72,63,67,60,53,74,68,51,75,
67,65,68,72,67,74,65,68,67,55,71,62,53,72,68,63,62,74,62,71,63,60,62,67,59,74,60,55,55,53,62,59,
55,55,53,51,72,55,67,62,55,55,51,53,67,72,55,55,53,47,74,55,67,55,47,53,67,55,74,55,53,48,75,55,
67,55,48,53,74,55,75,55,72,53,74,47,74,55,72,55,47,53,67,55,74,55,53,51,72,55,67,60,51,59,67,72,
60,60,72,59,67,53,74,60,72,60,53,59,67,74,60,60,74,59,67,55,75,60,74,60,55,59,74,75,60,60,72,59,
74,55,74,60,72,59,67,55,74,57,79,59,67,59,77,57,79,48,75,59,77,74,75,51,72,67,55,48,74,75,72,53,
74,65,51,67,75,72,63,74,65,55,71,62,53,72,63,74,65,71,62,48,72,63,55,74,65,79,72,75,55,79,79,75,
72,51,48,63,55,79,75,72,67,48,51,75,70,67,69,53,48,70,72,69,69,60,72,72,69,65,57,53,60,72,69,65,
60,53,57,69,63,60,62,58,53,63,77,62,74,53,77,77,74,70,50,53,77,74,70,65,46,50,74,69,65,67,51,46,
69,70,67,67,58,58,70,70,67,63,55,51,58,70,67,63,58,51,55,67,62,58,60,57,51,62,75,60,72,51,75,75,
72,69,48,51,75,72,69,64,45,48,72,67,64,66,50,45,67,69,66,66,57,57,69,69,66,62,54,50,57,69,66,62,
57,50,54,66,60,57,58,55,43,50,60,46,43,67,45,58,46,43,45,57,50,55,67,43,45,50,66,38,57,45,48,38,
67,55,46,66,48,58,55,57,50,46,58,55,57,62,42,67,50,55,57,62,50,50,42,57,60,50,67,58,55,50,60,70,
67,69,62,58,70,67,69,74,57,54,55,62,67,69,74,62,62,57,69,72,62,70,55,54,72,74,70,72,67,62,74,70,
72,77,60,57,55,67,70,72,77,65,65,60,72,75,65,74,58,57,75,77,74,75,65,65,77,74,75,79,62,59,58,65,
74,74,79,67,67,62,74,77,67,76,60,59,77,79,76,77,67,67,79,76,77,81,64,61,60,67,76,76,81,69,69,64,
76,79,69,78,62,61,79,75,69,74,75,72,74,79,70,64,78,62,72,74,70,81,69,66,79,64,74,74,69,82,67,67,
81,66,74,80,67,79,80,77,79,79,69,67,77,77,79,75,70,69,77,74,75,75,72,70,74,67,72,65,67,63,65,81,
72,82,63,69,72,65,69,69,65,74,58,75,69,65,58,63,65,62,63,79,70,81,62,67,70,63,67,67,63,72,57,74,
67,63,57,62,63,60,62,78,69,79,60,66,69,62,66,66,62,55,79,70,55,72,78,66,74,58,55,70,72,62,74,58,
70,67,72,62,62,69,66,79,55,70,67,70,67,69,66,67,64,70,67,69,66,67,64,58,70,67,62,69,66,72,70,74,
70,72,72,70,79,74,74,72,75,74,57,81,74,66,58,67,79,75,72,74,55,82,70,67,57,81,66,72,81,82,58,79,
74,55,70,81,81,79,57,78,72,69,67,58,74,81,79,78,55,78,70,62,57,72,69,79,79,78,54,81,69,62,55,70,
62,79,79,81,57,78,54,79,76,78,50,74,69,62,57,76,72,74,70,62,54,72,69,70,55,70,62,55,50,62,54,69,
74,70,50,72,55,55,74,74,72,57,66,60,50,74,74,66,50,72,57,60,74,74,72,58,67,58,50,74,74,67,57,72,
58,58,74,55,74,57,72,57,66,60,55,74,74,66,50,72,57,60,74,74,72,55,70,58,50,74,67,70,50,66,55,58,
67,55,67,50,66,57,72,57,55,67,67,72,50,66,57,57,67,57,67,50,66,58,74,55,57,67,67,74,57,66,58,55,
67,55,67,57,66,57,72,57,55,67,67,72,50,66,57,57,67,67,66,55,70,55,50,67,51,79,63,58,62,55,70,55,
48,69,60,51,79,58,50,78,62,57,63,48,69,60,43,79,62,59,50,78,62,57,43,79,62,59
};