Visual Servoing Platform  version 3.6.1 under development (2024-04-28)
vpFont.cpp
1 /****************************************************************************
2  *
3  * ViSP, open source Visual Servoing Platform software.
4  * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  * See the file LICENSE.txt at the root directory of this source
11  * distribution for additional information about the GNU GPL.
12  *
13  * For using ViSP with software that can not be combined with the GNU
14  * GPL, please contact Inria about acquiring a ViSP Professional
15  * Edition License.
16  *
17  * See https://visp.inria.fr for more information.
18  *
19  * This software was developed at:
20  * Inria Rennes - Bretagne Atlantique
21  * Campus Universitaire de Beaulieu
22  * 35042 Rennes Cedex
23  * France
24  *
25  * If you have questions regarding the use of this file, please contact
26  * Inria at visp@inria.fr
27  *
28  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30  *
31  * Description:
32  * Draw text in an image.
33  *
34 *****************************************************************************/
35 // Contains code from:
36 /*
37  * Simd Library (http://ermig1979.github.io/Simd).
38  *
39  * Copyright (c) 2011-2017 Yermalayeu Ihar.
40  *
41  * Permission is hereby granted, free of charge, to any person obtaining a copy
42  * of this software and associated documentation files (the "Software"), to deal
43  * in the Software without restriction, including without limitation the rights
44  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
45  * copies of the Software, and to permit persons to whom the Software is
46  * furnished to do so, subject to the following conditions:
47  *
48  * The above copyright notice and this permission notice shall be included in
49  * all copies or substantial portions of the Software.
50  *
51  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
52  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
53  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
54  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
55  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
56  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
57  * SOFTWARE.
58  */
59 
60 #include <visp3/core/vpFont.h>
61 #include <visp3/core/vpIoException.h>
62 #include <visp3/core/vpIoTools.h>
63 #include <visp3/core/vpMath.h>
64 #include <iterator>
65 #include "private/Font.hpp"
66 
67 #define STB_TRUETYPE_IMPLEMENTATION
68 #include "private/stb_truetype.h"
69 
70 #ifndef DOXYGEN_SHOULD_SKIP_THIS
71 class vpFont::Impl
72 {
73 private:
74  typedef Font::Point<int> Point;
75  typedef std::string String;
76  typedef Font::Rectangle<int> Rect;
77  typedef std::vector<Rect> Rects;
78  typedef std::vector<Point> Points;
79 
80 public:
89  Impl(unsigned int height = 16, const vpFontFamily &fontFamily = TRUETYPE_FILE,
90  const std::string &ttfFilename = std::string(VISP_RUBIK_REGULAR_FONT_RESOURCES))
91  {
92  _fontHeight = height;
93  _ttfFamily = fontFamily;
94 
95  switch (_ttfFamily) {
96  case GENERIC_MONOSPACE: {
97  LoadDefault();
98  Resize(height);
99  break;
100  }
101  case TRUETYPE_FILE: {
102  std::vector<std::string> ttfs = vpIoTools::splitChain(ttfFilename, ";");
103  std::string ttf_file = "";
104  for (size_t i = 0; i < ttfs.size(); i++) {
105  if (vpIoTools::checkFilename(ttfs[i])) {
106  ttf_file = ttfs[i];
107  break;
108  }
109  }
110  if (ttf_file.empty()) {
111  throw(vpException(vpException::fatalError, "True type font file doesn't exist in %s", ttfFilename.c_str()));
112  }
113 
114  LoadTTF(ttf_file);
115 
116  /* calculate font scaling */
117  _fontScale = stbtt_ScaleForPixelHeight(&_info, static_cast<float>(_fontHeight));
118 
119  int lineGap = 0;
120  stbtt_GetFontVMetrics(&_info, &_fontAscent, &_fontDescent, &lineGap);
121 
122  _fontAscent = vpMath::round(_fontAscent * _fontScale);
123  _fontDescent = vpMath::round(_fontDescent * _fontScale);
124 
125  break;
126  }
127  }
128  }
129 
137  bool Resize(unsigned int height)
138  {
139  _fontHeight = height;
140 
141  switch (_ttfFamily) {
142  case GENERIC_MONOSPACE: {
143  if (height == static_cast<unsigned int>(_currentSize.y)) {
144  return true;
145  }
146 
147  if (height < 4u || height > static_cast<unsigned int>(_originalSize.y * 4)) {
148  return false;
149  }
150 
151  _currentSize.y = static_cast<int>(height);
152  _currentSize.x = static_cast<int>(height) * _originalSize.x / _originalSize.y;
153  _currentIndent.x = static_cast<int>(height) * _originalIndent.x / _originalSize.y;
154  _currentIndent.y = static_cast<int>(height) * _originalIndent.y / _originalSize.y;
155 
156  size_t level = 0;
157  for (; (height << (level + 1)) < static_cast<size_t>(_originalSize.y); level++)
158  ;
159 
160  _currentSymbols.resize(_originalSymbols.size());
161  for (size_t i = 0; i < _originalSymbols.size(); i++) {
162  _currentSymbols[i].value = _originalSymbols[i].value;
163  _currentSymbols[i].image.resize(static_cast<unsigned int>(_currentSize.y),
164  static_cast<unsigned int>(_currentSize.x));
165  vpImageTools::resize(_originalSymbols[i].image, _currentSymbols[i].image, vpImageTools::INTERPOLATION_LINEAR);
166  }
167 
168  break;
169  }
170 
171  case TRUETYPE_FILE:
172  break;
173  }
174 
175  return true;
176  }
177 
183  int Height() const { return _fontHeight; }
184 
192  Point Measure(const String &text)
193  {
194  switch (_ttfFamily) {
195  case GENERIC_MONOSPACE: {
196  Point size, curr;
197  for (size_t i = 0; i < text.size(); i++) {
198  if (text[i] >= _symbolMin && text[i] <= _symbolMax) {
199  curr.x += _currentSize.x;
200  size.x = std::max<int>(size.x, curr.x);
201  size.y = std::max<int>(size.y, curr.y + _currentSize.y);
202  }
203  else if (text[i] == '\n') {
204  curr.x = 0;
205  curr.y += _currentSize.y;
206  }
207  }
208  return size.x ? size + 2 * _currentIndent : Point();
209  }
210 
211  case TRUETYPE_FILE: {
212  ToUTF32(text, _wordUTF32);
213 
214  _bb = vpRect(std::numeric_limits<double>::max(), std::numeric_limits<double>::max(), -1, -1);
215  _ax_vec.clear();
216  _lsb_vec.clear();
217  _bb_vec.clear();
218  _y_vec.clear();
219 
220  int wordUTF32_size = static_cast<int>(_wordUTF32.size());
221 
222  for (int i = 0, x = 0; i < wordUTF32_size; i++) {
223  /* how wide is this character */
224  int ax = 0;
225  int lsb = 0;
226  stbtt_GetCodepointHMetrics(&_info, _wordUTF32[i], &ax, &lsb);
227  _ax_vec.push_back(ax);
228  _lsb_vec.push_back(lsb);
229  /* (Note that each Codepoint call has an alternative Glyph version which caches the work required to lookup the
230  * character word[i].) */
231 
232  /* get bounding box for character (may be offset to account for chars that dip above or below the line */
233  int c_x1 = 0, c_y1 = 0, c_x2 = 0, c_y2 = 0;
234  stbtt_GetCodepointBitmapBox(&_info, _wordUTF32[i], _fontScale, _fontScale, &c_x1, &c_y1, &c_x2, &c_y2);
235  _bb_vec.push_back(vpRect(c_x1, c_y1, c_x2 - c_x1, c_y2 - c_y1));
236 
237  /* compute y (different characters have different heights */
238  int y = _fontAscent + c_y1;
239  _y_vec.push_back(y);
240 
241  int d_x = x + vpMath::round(lsb * _fontScale);
242  int d_y = y;
243  int d_w = (c_x2 - c_x1);
244  int d_h = (c_y2 - c_y1);
245  _bb.setLeft(_bb.getLeft() > d_x ? d_x : _bb.getLeft());
246  _bb.setTop(_bb.getTop() > d_y ? d_y : _bb.getTop());
247 
248  _bb.setWidth(d_x + d_w - _bb.getLeft());
249  _bb.setBottom(_bb.getBottom() < d_y + d_h ? d_y + d_h : _bb.getBottom());
250 
251  /* advance x */
252  x += vpMath::round(ax * _fontScale);
253 
254  /* add kerning */
255  int kern = 0;
256  if (i < wordUTF32_size - 1) {
257  kern = stbtt_GetCodepointKernAdvance(&_info, _wordUTF32[i], _wordUTF32[i + 1]);
258  x += vpMath::round(kern * _fontScale);
259  }
260  }
261 
262  Point bb;
263  bb.x = static_cast<int>(_bb.getWidth());
264  bb.y = static_cast<int>(_bb.getHeight());
265 
266  return bb;
267  }
268  }
269 
270  return Point();
271  }
272 
276  vpImagePoint Measure2(const String &text)
277  {
278  Point mes = Measure(text);
279  return vpImagePoint(mes.y, mes.x);
280  }
281 
292  bool Draw(vpImage<unsigned char> &canvas, const String &text, const vpImagePoint &position, unsigned char color)
293  {
294  switch (_ttfFamily) {
295  case GENERIC_MONOSPACE: {
296  Rect canvasRect, alphaRect;
297  CreateAlpha(text, Rect(0, 0, canvas.getWidth(), canvas.getHeight()), Point(position.get_u(), position.get_v()),
298  _alpha, canvasRect, alphaRect);
299 
300  if (_alpha.getSize()) {
301  for (int i = 0; i < alphaRect.Height(); i++) {
302  int dstY = canvasRect.Top() + i;
303  for (int j = 0; j < alphaRect.Width(); j++) {
304  unsigned int dstX = static_cast<unsigned int>(canvasRect.Left() + j);
305 
306  // dst[x, y, c] = (pixel[c]*_alpha[x, y] + dst[x, y, c]*(255 - _alpha[x, y]))/255;
307  int coeff = 255 - _alpha[i][j];
308  unsigned char gray = static_cast<unsigned char>((color * _alpha[i][j] + coeff * canvas[dstY][dstX]) / 255);
309  canvas[dstY][dstX] = gray;
310  }
311  }
312  }
313 
314  break;
315  }
316 
317  case TRUETYPE_FILE: {
318  Measure(text);
319  // Try to resize only if new size is bigger
320  _fontBuffer.resize(std::max<unsigned int>(_fontBuffer.getHeight(), static_cast<unsigned int>(_bb.getBottom() + 1)),
321  std::max<unsigned int>(_fontBuffer.getWidth(), static_cast<unsigned int>(_bb.getRight() + 1)));
322 
323  int wordUTF32_size = static_cast<int>(_wordUTF32.size());
324 
325  for (int i = 0, x = 0; i < wordUTF32_size; i++) {
326  /* render character (stride and offset is important here) */
327  int byteOffset = x + vpMath::round(_lsb_vec[i] * _fontScale) + (_y_vec[i] * _fontBuffer.getWidth());
328  stbtt_MakeCodepointBitmap(&_info, _fontBuffer.bitmap + byteOffset, static_cast<int>(_bb_vec[i].getWidth()),
329  static_cast<int>(_bb_vec[i].getHeight()), _fontBuffer.getWidth(), _fontScale,
330  _fontScale, _wordUTF32[i]);
331 
332  int d_x = x + vpMath::round(_lsb_vec[i] * _fontScale);
333  int d_y = _y_vec[i];
334  int d_w = static_cast<int>(_bb_vec[i].getWidth());
335  int d_h = static_cast<int>(_bb_vec[i].getHeight());
336 
337  for (int y = d_y; y < d_y + d_h; y++) {
338  int dstY = static_cast<int>(position.get_v() + y - _bb.getTop());
339 
340  for (int x = d_x; x < d_x + d_w; x++) {
341  unsigned int dstX = static_cast<unsigned int>(position.get_u() + x - _bb.getLeft());
342 
343  int coeff = 255 - _fontBuffer[y][x];
344  unsigned char gray =
345  static_cast<unsigned char>((color * _fontBuffer[y][x] + coeff * canvas[dstY][dstX]) / 255);
346  canvas[dstY][dstX] = gray;
347  }
348  }
349 
350  /* advance x */
351  x += vpMath::round(_ax_vec[i] * _fontScale);
352 
353  /* add kerning */
354  if (i < wordUTF32_size - 1) {
355  int kern = stbtt_GetCodepointKernAdvance(&_info, _wordUTF32[i], _wordUTF32[i + 1]);
356  x += vpMath::round(kern * _fontScale);
357  }
358  }
359 
360  break;
361  }
362  }
363 
364  return true;
365  }
366 
378  bool Draw(vpImage<unsigned char> &canvas, const String &text, const vpImagePoint &position, unsigned char color,
379  unsigned char background)
380  {
381  Rect canvasRect = Rect(Measure(text)).Shifted(position.get_u(), position.get_v());
382  for (int i = canvasRect.Top(); i < canvasRect.Bottom(); i++) {
383  for (int j = canvasRect.Left(); j < canvasRect.Right(); j++) {
384  canvas[i][j] = background;
385  }
386  }
387  return Draw(canvas, text, position, color);
388  }
389 
400  bool Draw(vpImage<vpRGBa> &canvas, const String &text, const vpImagePoint &position, const vpColor &color)
401  {
402  switch (_ttfFamily) {
403  case GENERIC_MONOSPACE: {
404  Rect canvasRect, alphaRect;
405  CreateAlpha(text, Rect(0, 0, canvas.getWidth(), canvas.getHeight()), Point(position.get_u(), position.get_v()),
406  _alpha, canvasRect, alphaRect);
407 
408  if (_alpha.getSize()) {
409  for (int i = 0; i < alphaRect.Height(); i++) {
410  int dstY = canvasRect.Top() + i;
411  for (int j = 0; j < alphaRect.Width(); j++) {
412  unsigned int dstX = static_cast<unsigned int>(canvasRect.Left() + j);
413 
414  // dst[x, y, c] = (pixel[c]*_alpha[x, y] + dst[x, y, c]*(255 - _alpha[x, y]))/255;
415  int coeff = 255 - _alpha[i][j];
416  int R = (color.R * _alpha[i][j] + coeff * canvas[dstY][dstX].R) / 255;
417  int G = (color.G * _alpha[i][j] + coeff * canvas[dstY][dstX].G) / 255;
418  int B = (color.B * _alpha[i][j] + coeff * canvas[dstY][dstX].B) / 255;
419  canvas[dstY][dstX] =
420  vpRGBa(static_cast<unsigned char>(R), static_cast<unsigned char>(G), static_cast<unsigned char>(B));
421  }
422  }
423  }
424 
425  break;
426  }
427 
428  case TRUETYPE_FILE: {
429  Measure(text);
430  // Try to resize only if new size is bigger
431  _fontBuffer.resize(std::max<unsigned int>(_fontBuffer.getHeight(), static_cast<unsigned int>(_bb.getBottom() + 1)),
432  std::max<unsigned int>(_fontBuffer.getWidth(), static_cast<unsigned int>(_bb.getRight() + 1)));
433 
434  int wordUTF32_size = static_cast<int>(_wordUTF32.size());
435 
436  for (int i = 0, x = 0; i < wordUTF32_size; i++) {
437  /* render character (stride and offset is important here) */
438  int byteOffset = x + vpMath::round(_lsb_vec[i] * _fontScale) + (_y_vec[i] * _fontBuffer.getWidth());
439  stbtt_MakeCodepointBitmap(&_info, _fontBuffer.bitmap + byteOffset, static_cast<int>(_bb_vec[i].getWidth()),
440  static_cast<int>(_bb_vec[i].getHeight()), _fontBuffer.getWidth(), _fontScale,
441  _fontScale, _wordUTF32[i]);
442 
443  int d_x = x + vpMath::round(_lsb_vec[i] * _fontScale);
444  int d_y = _y_vec[i];
445  int d_w = static_cast<int>(_bb_vec[i].getWidth());
446  int d_h = static_cast<int>(_bb_vec[i].getHeight());
447 
448  for (int y = d_y; y < d_y + d_h; y++) {
449  int dstY = static_cast<int>(position.get_v() + y - _bb.getTop());
450 
451  for (int x = d_x; x < d_x + d_w; x++) {
452  unsigned int dstX = static_cast<unsigned int>(position.get_u() + x - _bb.getLeft());
453 
454  int coeff = 255 - _fontBuffer[y][x];
455  int R = (color.R * _fontBuffer[y][x] + coeff * canvas[dstY][dstX].R) / 255;
456  int G = (color.G * _fontBuffer[y][x] + coeff * canvas[dstY][dstX].G) / 255;
457  int B = (color.B * _fontBuffer[y][x] + coeff * canvas[dstY][dstX].B) / 255;
458  canvas[dstY][dstX] =
459  vpRGBa(static_cast<unsigned char>(R), static_cast<unsigned char>(G), static_cast<unsigned char>(B));
460  }
461  }
462 
463  /* advance x */
464  x += vpMath::round(_ax_vec[i] * _fontScale);
465 
466  /* add kerning */
467  if (i < wordUTF32_size - 1) {
468  int kern = stbtt_GetCodepointKernAdvance(&_info, _wordUTF32[i], _wordUTF32[i + 1]);
469  x += vpMath::round(kern * _fontScale);
470  }
471  }
472 
473  break;
474  }
475  }
476 
477  return true;
478  }
479 
491  bool Draw(vpImage<vpRGBa> &canvas, const String &text, const vpImagePoint &position, const vpColor &color,
492  const vpColor &background)
493  {
494  Rect canvasRect = Rect(Measure(text)).Shifted(position.get_u(), position.get_v());
495  for (int i = canvasRect.Top(); i < canvasRect.Bottom(); i++) {
496  for (int j = canvasRect.Left(); j < canvasRect.Right(); j++) {
497  canvas[i][j] = background;
498  }
499  }
500  return Draw(canvas, text, position, color);
501  }
502 
503 private:
504  struct Symbol
505  {
506  char value;
508  };
509  typedef std::vector<Symbol> Symbols;
510 
511  Symbols _originalSymbols, _currentSymbols;
512  Point _originalSize, _currentSize, _originalIndent, _currentIndent;
513  char _symbolMin, _symbolMax;
514  vpImage<unsigned char> _alpha;
515 
516  // For font drawing using stb_truetype interface
517  std::vector<unsigned char> fontBuffer;
518  unsigned int _fontHeight;
519  float _fontScale;
520  int _fontAscent;
521  int _fontDescent;
522  vpFontFamily _ttfFamily;
523  stbtt_fontinfo _info;
524  vpImage<unsigned char> _fontBuffer;
525  std::vector<unsigned int> _wordUTF32;
526  vpRect _bb;
527  std::vector<int> _ax_vec;
528  std::vector<int> _lsb_vec;
529  std::vector<vpRect> _bb_vec;
530  std::vector<int> _y_vec;
531 
532  void CreateAlpha(const String &text, const Rect &canvas, const Point &shift, vpImage<unsigned char> &alpha,
533  Rect &canvasRect, Rect &alphaRect) const
534  {
535  Rects rects;
536  rects.reserve(text.size());
537  String symbols;
538  symbols.reserve(text.size());
539  Point curr;
540  for (size_t i = 0; i < text.size(); i++) {
541  char value = text[i];
542  if (value >= _symbolMin && value <= _symbolMax) {
543  Rect current(curr, curr + _currentSize);
544  Rect shifted = current.Shifted(shift + _currentIndent);
545  if (!canvas.Intersection(shifted).Empty()) {
546  alphaRect |= current;
547  canvasRect |= shifted;
548  rects.push_back(current);
549  symbols.push_back(value);
550  }
551  curr.x += _currentSize.x;
552  }
553  else if (value == '\n') {
554  curr.x = 0;
555  curr.y += _currentSize.y;
556  }
557  }
558 
559  alpha.resize(static_cast<unsigned int>(alphaRect.Size().y), static_cast<unsigned int>(alphaRect.Size().x), 0);
560  for (size_t i = 0; i < symbols.size(); i++) {
561  Rect r = rects[i].Shifted(-alphaRect.TopLeft());
562  alpha.insert(_currentSymbols[static_cast<size_t>(symbols[i] - _symbolMin)].image,
563  vpImagePoint(r.Top(), r.Left()));
564  }
565  Rect old = canvasRect;
566  canvasRect &= canvas;
567  alphaRect.Shift(-alphaRect.TopLeft());
568  alphaRect.left += canvasRect.left - old.left;
569  alphaRect.top += canvasRect.top - old.top;
570  alphaRect.right += canvasRect.right - old.right;
571  alphaRect.bottom += canvasRect.bottom - old.bottom;
572  }
573 
574  uint8_t LoadValue(const uint8_t *&data, size_t &size)
575  {
576  if (size == 0) {
577  throw;
578  }
579  size--;
580  return *data++;
581  }
582 
583  bool Load(const uint8_t *data, size_t size)
584  {
585  try {
586  _symbolMin = static_cast<char>(LoadValue(data, size));
587  _symbolMax = static_cast<char>(LoadValue(data, size));
588  _originalSize.x = LoadValue(data, size);
589  _originalSize.y = LoadValue(data, size);
590  _originalIndent.x = LoadValue(data, size);
591  _originalIndent.y = LoadValue(data, size);
592  _originalSymbols.resize(static_cast<size_t>(_symbolMax - _symbolMin));
593  for (char s = _symbolMin; s < _symbolMax; s++) {
594  Symbol &symbol = _originalSymbols[static_cast<size_t>(s - _symbolMin)];
595  symbol.value = static_cast<char>(LoadValue(data, size));
596  if (symbol.value != s) {
597  throw;
598  }
599 
600  symbol.image.resize(static_cast<unsigned int>(_originalSize.y), static_cast<unsigned int>(_originalSize.x), 0);
601  size_t top = LoadValue(data, size);
602  size_t bottom = LoadValue(data, size);
603  for (size_t r = top; r < bottom; r++) {
604  size_t count = LoadValue(data, size);
605  for (size_t l = 0; l < count; l++) {
606  size_t left = LoadValue(data, size);
607  size_t right = LoadValue(data, size);
608  assert(left < right);
609  memset(symbol.image[static_cast<unsigned int>(r)] + left, 0xFF, right - left);
610  }
611  }
612  }
613  }
614  catch (...) {
615  _originalSize = Point();
616  _originalSymbols.clear();
617  return false;
618  }
619  return true;
620  }
621 
622  bool LoadDefault()
623  {
624  static const uint8_t data[] = {
625  32, 127, 127, 231, 33, 12, 32, 0, 0, 33, 26, 160, 1, 57, 66, 1, 54, 69, 1, 52, 70, 1,
626  51, 72, 1, 50, 73, 1, 49, 74, 1, 48, 75, 1, 48, 75, 1, 47, 76, 1, 47, 76, 1, 46,
627  77, 1, 46, 77, 1, 46, 77, 1, 45, 77, 1, 45, 77, 1, 45, 78, 1, 45, 78, 1, 45, 78,
628  1, 45, 78, 1, 45, 78, 1, 45, 77, 1, 45, 77, 1, 46, 77, 1, 46, 77, 1, 46, 77, 1,
629  46, 77, 1, 46, 77, 1, 46, 77, 1, 46, 77, 1, 46, 77, 1, 46, 77, 1, 46, 76, 1, 47,
630  76, 1, 47, 76, 1, 47, 76, 1, 47, 76, 1, 47, 76, 1, 47, 76, 1, 47, 76, 1, 47, 76,
631  1, 47, 76, 1, 47, 75, 1, 47, 75, 1, 48, 75, 1, 48, 75, 1, 48, 75, 1, 48, 75, 1,
632  48, 75, 1, 48, 75, 1, 48, 75, 1, 48, 75, 1, 48, 75, 1, 48, 74, 1, 48, 74, 1, 49,
633  74, 1, 49, 74, 1, 49, 74, 1, 49, 74, 1, 49, 74, 1, 49, 74, 1, 49, 74, 1, 49, 74,
634  1, 49, 74, 1, 49, 73, 1, 50, 73, 1, 50, 73, 1, 50, 73, 1, 50, 73, 1, 50, 73, 1,
635  50, 73, 1, 50, 73, 1, 50, 73, 1, 50, 73, 1, 50, 73, 1, 50, 72, 1, 51, 72, 1, 51,
636  72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72,
637  1, 51, 72, 1, 52, 71, 1, 52, 71, 1, 52, 71, 1, 52, 71, 1, 53, 70, 1, 54, 69, 1,
638  54, 68, 1, 56, 67, 1, 57, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
639  0, 0, 0, 0, 0, 0, 1, 56, 67, 1, 54, 69, 1, 53, 71, 1, 52, 72, 1, 51, 72, 1,
640  50, 73, 1, 50, 73, 1, 50, 74, 1, 49, 74, 1, 49, 74, 1, 49, 74, 1, 50, 74, 1, 50,
641  74, 1, 50, 73, 1, 51, 73, 1, 51, 72, 1, 52, 71, 1, 53, 70, 1, 55, 68, 1, 56, 67,
642  34, 35, 90, 2, 27, 53, 70, 96, 2, 28, 53, 70, 96, 2, 28, 53, 70, 95, 2, 28, 53, 70,
643  95, 2, 28, 53, 70, 95, 2, 28, 53, 70, 95, 2, 28, 53, 71, 95, 2, 28, 52, 71, 95, 2,
644  29, 52, 71, 95, 2, 29, 52, 71, 94, 2, 29, 52, 71, 94, 2, 29, 52, 71, 94, 2, 29, 52,
645  71, 94, 2, 29, 52, 72, 94, 2, 30, 52, 72, 94, 2, 30, 51, 72, 94, 2, 30, 51, 72, 94,
646  2, 30, 51, 72, 93, 2, 30, 51, 72, 93, 2, 30, 51, 72, 93, 2, 30, 51, 73, 93, 2, 31,
647  51, 73, 93, 2, 31, 50, 73, 93, 2, 31, 50, 73, 93, 2, 31, 50, 73, 93, 2, 31, 50, 73,
648  92, 2, 31, 50, 74, 92, 2, 31, 50, 74, 92, 2, 32, 50, 74, 92, 2, 32, 50, 74, 92, 2,
649  32, 49, 74, 92, 2, 32, 49, 74, 92, 2, 32, 49, 74, 91, 2, 32, 49, 75, 91, 2, 32, 49,
650  75, 91, 2, 33, 49, 75, 91, 2, 33, 49, 75, 91, 2, 33, 48, 75, 91, 2, 33, 48, 75, 91,
651  2, 33, 48, 75, 91, 2, 33, 48, 76, 90, 2, 33, 48, 76, 90, 2, 34, 48, 76, 90, 2, 34,
652  48, 76, 90, 2, 34, 48, 76, 90, 2, 34, 47, 76, 90, 2, 34, 47, 76, 90, 2, 34, 47, 77,
653  89, 2, 34, 47, 77, 89, 2, 35, 47, 77, 89, 2, 35, 47, 77, 89, 2, 35, 46, 77, 89, 2,
654  36, 46, 78, 88, 2, 36, 45, 79, 87, 2, 38, 43, 80, 86, 35, 18, 176, 2, 47, 51, 83, 87,
655  2, 44, 54, 80, 89, 2, 43, 55, 78, 91, 2, 42, 56, 77, 92, 2, 41, 57, 76, 93, 2, 40,
656  58, 76, 93, 2, 40, 58, 75, 94, 2, 39, 59, 75, 94, 2, 39, 59, 75, 94, 2, 39, 59, 74,
657  94, 2, 39, 59, 74, 95, 2, 39, 59, 74, 95, 2, 39, 59, 74, 95, 2, 39, 59, 74, 94, 2,
658  39, 59, 74, 94, 2, 39, 59, 74, 94, 2, 38, 59, 74, 94, 2, 38, 59, 74, 94, 2, 38, 59,
659  74, 94, 2, 38, 59, 74, 94, 2, 38, 59, 74, 94, 2, 38, 58, 74, 94, 2, 38, 58, 73, 94,
660  2, 38, 58, 73, 94, 2, 38, 58, 73, 94, 2, 38, 58, 73, 94, 2, 38, 58, 73, 93, 2, 38,
661  58, 73, 93, 2, 38, 58, 73, 93, 2, 38, 58, 73, 93, 2, 37, 58, 73, 93, 2, 37, 58, 73,
662  93, 2, 37, 58, 73, 93, 2, 37, 58, 73, 93, 2, 37, 58, 73, 93, 2, 37, 58, 73, 93, 2,
663  37, 57, 73, 93, 2, 37, 57, 72, 93, 2, 37, 57, 72, 93, 2, 37, 57, 72, 93, 2, 37, 57,
664  72, 93, 2, 37, 57, 72, 92, 2, 37, 57, 72, 92, 2, 37, 57, 72, 92, 2, 37, 57, 72, 92,
665  2, 36, 57, 72, 92, 2, 36, 57, 72, 92, 2, 36, 57, 72, 92, 1, 26, 102, 1, 23, 105, 1,
666  21, 107, 1, 20, 108, 1, 19, 109, 1, 19, 109, 1, 18, 110, 1, 18, 110, 1, 18, 110, 1, 18,
667  110, 1, 18, 110, 1, 18, 110, 1, 18, 110, 1, 18, 110, 1, 19, 109, 1, 19, 109, 1, 20, 108,
668  1, 21, 107, 1, 22, 106, 1, 25, 103, 2, 35, 55, 70, 91, 2, 35, 55, 70, 90, 2, 35, 55,
669  70, 90, 2, 35, 55, 70, 90, 2, 35, 55, 70, 90, 2, 34, 55, 70, 90, 2, 34, 55, 70, 90,
670  2, 34, 55, 70, 90, 2, 34, 55, 70, 90, 2, 34, 55, 70, 90, 2, 34, 55, 70, 90, 2, 34,
671  54, 69, 90, 2, 34, 54, 69, 90, 2, 34, 54, 69, 90, 2, 34, 54, 69, 90, 2, 34, 54, 69,
672  90, 2, 34, 54, 69, 89, 2, 34, 54, 69, 89, 2, 34, 54, 69, 89, 2, 34, 54, 69, 89, 2,
673  33, 54, 69, 89, 2, 33, 54, 69, 89, 1, 25, 95, 1, 19, 100, 1, 17, 102, 1, 16, 103, 1,
674  15, 104, 1, 15, 105, 1, 14, 105, 1, 14, 106, 1, 14, 106, 1, 13, 106, 1, 13, 106, 1, 13,
675  106, 1, 14, 106, 1, 14, 106, 1, 14, 105, 1, 15, 105, 1, 15, 104, 1, 16, 103, 1, 17, 102,
676  1, 19, 100, 1, 25, 95, 2, 32, 52, 67, 88, 2, 32, 52, 67, 87, 2, 32, 52, 67, 87, 2,
677  32, 52, 67, 87, 2, 32, 52, 67, 87, 2, 31, 52, 67, 87, 2, 31, 52, 67, 87, 2, 31, 52,
678  67, 87, 2, 31, 52, 67, 87, 2, 31, 52, 67, 87, 2, 31, 52, 67, 87, 2, 31, 51, 67, 87,
679  2, 31, 51, 66, 87, 2, 31, 51, 66, 87, 2, 31, 51, 66, 87, 2, 31, 51, 66, 86, 2, 31,
680  51, 66, 86, 2, 31, 51, 66, 86, 2, 31, 51, 66, 86, 2, 30, 51, 66, 86, 2, 30, 51, 66,
681  86, 2, 30, 51, 66, 86, 2, 30, 51, 66, 86, 2, 30, 51, 66, 86, 2, 30, 51, 66, 86, 2,
682  30, 50, 66, 86, 2, 30, 50, 65, 86, 2, 30, 50, 65, 86, 2, 30, 50, 65, 86, 2, 30, 50,
683  65, 86, 2, 30, 50, 65, 85, 2, 30, 50, 65, 85, 2, 30, 50, 65, 85, 2, 30, 50, 65, 85,
684  2, 29, 50, 65, 85, 2, 29, 50, 65, 85, 2, 29, 50, 65, 85, 2, 30, 50, 65, 85, 2, 30,
685  50, 65, 84, 2, 30, 49, 65, 84, 2, 30, 49, 65, 84, 2, 31, 49, 66, 84, 2, 31, 48, 66,
686  83, 2, 32, 47, 67, 82, 2, 33, 46, 68, 81, 2, 34, 45, 70, 80, 2, 36, 43, 71, 78, 36,
687  16, 183, 1, 61, 63, 1, 58, 67, 1, 56, 68, 1, 55, 69, 1, 54, 70, 1, 53, 71, 1, 53,
688  71, 1, 53, 71, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
689  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 73, 1, 48, 77, 1,
690  44, 81, 2, 42, 84, 88, 96, 1, 40, 98, 1, 38, 99, 1, 37, 100, 1, 35, 100, 1, 34, 101,
691  1, 33, 101, 1, 32, 101, 1, 31, 102, 1, 30, 102, 1, 29, 102, 1, 28, 102, 1, 28, 102, 1,
692  27, 102, 1, 26, 102, 1, 26, 102, 1, 25, 102, 2, 25, 58, 69, 102, 2, 24, 53, 73, 102, 2,
693  24, 50, 76, 102, 2, 24, 49, 78, 102, 2, 23, 47, 80, 102, 2, 23, 46, 81, 102, 2, 23, 45,
694  82, 102, 2, 23, 44, 82, 102, 2, 22, 44, 82, 101, 2, 22, 43, 83, 101, 2, 22, 43, 83, 101,
695  2, 22, 43, 84, 100, 2, 22, 42, 84, 100, 2, 22, 42, 85, 99, 2, 22, 42, 87, 98, 2, 22,
696  43, 88, 96, 1, 22, 43, 1, 23, 44, 1, 23, 44, 1, 23, 45, 1, 23, 47, 1, 23, 48, 1,
697  24, 51, 1, 24, 54, 1, 24, 58, 1, 25, 62, 1, 25, 67, 1, 26, 72, 1, 26, 76, 1, 27,
698  80, 1, 28, 83, 1, 29, 85, 1, 29, 88, 1, 30, 90, 1, 31, 92, 1, 33, 93, 1, 34, 95,
699  1, 35, 96, 1, 37, 97, 1, 39, 98, 1, 41, 99, 1, 43, 100, 1, 46, 101, 1, 50, 101, 1,
700  54, 102, 1, 59, 102, 1, 64, 103, 1, 69, 104, 1, 73, 104, 1, 76, 104, 1, 79, 105, 1, 81,
701  105, 1, 82, 105, 1, 83, 105, 1, 84, 106, 2, 26, 29, 85, 106, 2, 23, 32, 85, 106, 2, 22,
702  34, 86, 106, 2, 20, 35, 86, 106, 2, 20, 36, 86, 106, 2, 19, 36, 86, 106, 2, 19, 37, 86,
703  106, 2, 18, 37, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 85, 106, 2,
704  18, 39, 85, 106, 2, 18, 39, 84, 106, 2, 18, 40, 84, 106, 2, 18, 41, 83, 105, 2, 18, 42,
705  82, 105, 2, 18, 43, 81, 105, 2, 18, 44, 79, 104, 2, 18, 46, 77, 104, 2, 18, 49, 75, 104,
706  2, 18, 52, 73, 103, 2, 18, 56, 68, 103, 1, 18, 102, 1, 18, 101, 1, 18, 101, 1, 18, 100,
707  1, 18, 99, 1, 18, 98, 1, 18, 98, 1, 18, 97, 1, 18, 96, 1, 18, 95, 1, 18, 94, 1,
708  19, 92, 1, 19, 91, 1, 19, 89, 1, 20, 88, 2, 21, 35, 39, 86, 2, 22, 33, 41, 83, 2,
709  24, 31, 44, 81, 1, 47, 77, 1, 51, 73, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
710  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
711  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
712  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 53, 71, 1, 53, 71, 1, 53, 71,
713  1, 54, 70, 1, 55, 69, 1, 56, 68, 1, 57, 67, 1, 61, 63, 37, 30, 160, 1, 44, 54, 1,
714  40, 58, 1, 37, 61, 1, 36, 62, 1, 34, 64, 1, 32, 66, 1, 31, 67, 1, 30, 68, 1, 29,
715  69, 1, 28, 70, 1, 27, 71, 1, 26, 72, 1, 25, 73, 2, 25, 44, 54, 73, 2, 24, 42, 56,
716  74, 2, 24, 40, 58, 74, 2, 23, 39, 59, 75, 2, 23, 38, 61, 75, 2, 22, 37, 61, 76, 2,
717  22, 36, 62, 76, 2, 22, 35, 63, 76, 2, 21, 35, 63, 77, 2, 21, 34, 64, 77, 2, 21, 34,
718  64, 77, 2, 21, 34, 65, 77, 2, 21, 33, 65, 77, 2, 21, 33, 65, 77, 2, 20, 33, 65, 78,
719  2, 20, 33, 65, 78, 2, 20, 33, 65, 78, 2, 21, 33, 65, 78, 2, 21, 33, 65, 77, 2, 21,
720  33, 65, 77, 2, 21, 34, 64, 77, 2, 21, 34, 64, 77, 2, 21, 34, 64, 77, 2, 21, 35, 63,
721  77, 2, 22, 36, 63, 76, 2, 22, 36, 62, 76, 2, 22, 37, 61, 76, 2, 23, 38, 60, 75, 2,
722  23, 39, 59, 75, 2, 24, 41, 57, 74, 2, 25, 42, 56, 74, 2, 25, 45, 53, 73, 1, 26, 72,
723  2, 27, 71, 100, 103, 2, 28, 71, 96, 105, 2, 28, 70, 93, 106, 2, 29, 69, 90, 107, 2, 31,
724  68, 87, 107, 2, 32, 66, 84, 107, 2, 33, 65, 81, 108, 2, 35, 63, 78, 107, 2, 37, 62, 75,
725  107, 2, 39, 59, 72, 107, 2, 42, 56, 68, 106, 1, 65, 105, 1, 62, 103, 1, 59, 100, 1, 56,
726  97, 1, 53, 94, 1, 50, 91, 1, 47, 88, 1, 44, 85, 1, 41, 82, 1, 38, 78, 1, 35, 75,
727  1, 31, 72, 1, 28, 69, 1, 25, 66, 1, 22, 63, 1, 20, 60, 2, 19, 57, 69, 81, 2, 18,
728  54, 66, 84, 2, 17, 51, 63, 87, 2, 17, 47, 61, 88, 2, 17, 44, 59, 90, 2, 17, 41, 58,
729  92, 2, 17, 38, 57, 93, 2, 18, 35, 55, 94, 2, 18, 32, 54, 95, 2, 19, 29, 53, 96, 2,
730  20, 26, 53, 97, 1, 52, 98, 1, 51, 99, 2, 50, 69, 80, 99, 2, 50, 67, 82, 100, 2, 49,
731  65, 84, 100, 2, 49, 64, 85, 101, 2, 48, 63, 86, 101, 2, 48, 62, 87, 102, 2, 48, 61, 88,
732  102, 2, 47, 61, 89, 102, 2, 47, 60, 89, 102, 2, 47, 60, 90, 103, 2, 46, 59, 90, 103, 2,
733  46, 59, 90, 103, 2, 46, 59, 91, 103, 2, 46, 59, 91, 103, 2, 46, 59, 91, 103, 2, 46, 59,
734  91, 103, 2, 46, 59, 91, 103, 2, 46, 59, 91, 103, 2, 46, 59, 91, 103, 2, 46, 59, 90, 103,
735  2, 46, 59, 90, 103, 2, 47, 60, 90, 103, 2, 47, 60, 89, 103, 2, 47, 61, 89, 102, 2, 47,
736  61, 88, 102, 2, 48, 62, 87, 102, 2, 48, 63, 86, 101, 2, 49, 64, 85, 101, 2, 49, 65, 84,
737  100, 2, 50, 67, 83, 100, 2, 50, 69, 81, 99, 2, 51, 73, 76, 99, 1, 52, 98, 1, 53, 97,
738  1, 53, 96, 1, 54, 95, 1, 55, 94, 1, 56, 93, 1, 58, 92, 1, 59, 91, 1, 61, 89, 1,
739  63, 87, 1, 65, 84, 1, 68, 81, 38, 44, 160, 1, 65, 72, 1, 59, 76, 2, 56, 79, 85, 89,
740  1, 54, 92, 1, 52, 94, 1, 50, 95, 1, 49, 96, 1, 48, 96, 1, 47, 97, 1, 46, 97, 1,
741  45, 97, 1, 44, 97, 1, 43, 97, 1, 42, 97, 1, 42, 97, 1, 41, 97, 1, 40, 97, 1, 40,
742  96, 1, 39, 95, 1, 39, 94, 1, 38, 93, 2, 38, 63, 73, 92, 2, 38, 61, 74, 90, 2, 37,
743  60, 76, 88, 2, 37, 59, 77, 86, 2, 37, 58, 78, 84, 2, 37, 58, 80, 82, 1, 37, 57, 1,
744  37, 57, 1, 37, 57, 1, 36, 57, 1, 36, 57, 1, 37, 57, 1, 37, 57, 1, 37, 58, 1, 37,
745  58, 1, 37, 59, 1, 37, 59, 1, 37, 60, 1, 38, 60, 1, 38, 61, 1, 39, 62, 1, 39, 62,
746  1, 39, 63, 1, 40, 64, 1, 40, 64, 1, 41, 65, 1, 42, 66, 1, 42, 66, 1, 43, 67, 1,
747  43, 68, 1, 42, 68, 1, 41, 69, 1, 39, 70, 1, 38, 71, 1, 37, 71, 2, 36, 72, 88, 105,
748  2, 35, 73, 88, 108, 2, 34, 73, 87, 109, 2, 33, 74, 87, 110, 2, 32, 75, 87, 110, 2, 31,
749  75, 87, 111, 2, 30, 76, 86, 111, 2, 30, 77, 86, 112, 2, 29, 77, 86, 112, 2, 28, 78, 85,
750  112, 2, 28, 79, 85, 112, 2, 27, 79, 85, 112, 3, 27, 54, 56, 80, 84, 112, 3, 27, 52, 56,
751  81, 84, 111, 3, 26, 51, 57, 81, 84, 111, 3, 26, 49, 58, 82, 84, 110, 2, 25, 48, 58, 110,
752  2, 25, 48, 59, 109, 2, 25, 47, 60, 108, 2, 25, 46, 60, 106, 2, 24, 46, 61, 103, 2, 24,
753  45, 62, 103, 2, 24, 45, 62, 103, 2, 24, 44, 63, 102, 2, 24, 44, 64, 102, 2, 24, 44, 65,
754  102, 2, 24, 44, 65, 102, 2, 24, 44, 66, 101, 2, 24, 44, 67, 101, 2, 24, 44, 67, 101, 2,
755  24, 44, 68, 100, 2, 24, 44, 69, 100, 2, 24, 45, 69, 99, 2, 24, 45, 70, 99, 2, 24, 46,
756  71, 98, 2, 24, 47, 71, 98, 2, 25, 48, 72, 97, 2, 25, 49, 71, 105, 2, 25, 51, 69, 108,
757  2, 26, 55, 65, 109, 1, 26, 110, 1, 26, 111, 1, 27, 111, 1, 28, 112, 1, 28, 112, 1, 29,
758  112, 1, 29, 112, 1, 30, 112, 1, 31, 112, 1, 32, 112, 1, 33, 112, 1, 34, 111, 1, 35, 111,
759  1, 37, 110, 2, 38, 84, 85, 109, 2, 40, 82, 85, 108, 2, 42, 80, 86, 105, 1, 44, 78, 1,
760  48, 76, 1, 52, 71, 39, 33, 93, 1, 49, 75, 1, 49, 75, 1, 49, 75, 1, 49, 75, 1, 49,
761  74, 1, 50, 74, 1, 50, 74, 1, 50, 74, 1, 50, 74, 1, 50, 74, 1, 50, 74, 1, 50, 74,
762  1, 50, 74, 1, 51, 73, 1, 51, 73, 1, 51, 73, 1, 51, 73, 1, 51, 73, 1, 51, 73, 1,
763  51, 73, 1, 52, 73, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
764  72, 1, 53, 72, 1, 53, 72, 1, 53, 71, 1, 53, 71, 1, 53, 71, 1, 53, 71, 1, 53, 71,
765  1, 53, 71, 1, 54, 71, 1, 54, 71, 1, 54, 70, 1, 54, 70, 1, 54, 70, 1, 54, 70, 1,
766  54, 70, 1, 55, 70, 1, 55, 70, 1, 55, 70, 1, 55, 69, 1, 55, 69, 1, 55, 69, 1, 55,
767  69, 1, 55, 69, 1, 56, 69, 1, 56, 69, 1, 56, 69, 1, 56, 68, 1, 56, 68, 1, 57, 68,
768  1, 57, 68, 1, 58, 67, 1, 58, 66, 1, 60, 64, 40, 27, 189, 1, 88, 92, 1, 85, 95, 1,
769  84, 97, 1, 82, 98, 1, 82, 98, 1, 81, 99, 1, 80, 100, 1, 79, 100, 1, 79, 100, 1, 78,
770  100, 1, 77, 100, 1, 77, 100, 1, 76, 100, 1, 76, 100, 1, 75, 99, 1, 74, 99, 1, 74, 98,
771  1, 73, 98, 1, 73, 97, 1, 72, 97, 1, 72, 96, 1, 71, 95, 1, 71, 95, 1, 70, 94, 1,
772  70, 94, 1, 69, 93, 1, 69, 93, 1, 68, 92, 1, 68, 92, 1, 67, 91, 1, 67, 90, 1, 66,
773  90, 1, 66, 89, 1, 65, 89, 1, 65, 88, 1, 65, 88, 1, 64, 88, 1, 64, 87, 1, 63, 87,
774  1, 63, 86, 1, 62, 86, 1, 62, 85, 1, 62, 85, 1, 61, 85, 1, 61, 84, 1, 61, 84, 1,
775  60, 84, 1, 60, 83, 1, 60, 83, 1, 60, 83, 1, 59, 82, 1, 59, 82, 1, 59, 82, 1, 58,
776  81, 1, 58, 81, 1, 58, 81, 1, 58, 81, 1, 57, 80, 1, 57, 80, 1, 57, 80, 1, 57, 80,
777  1, 57, 79, 1, 56, 79, 1, 56, 79, 1, 56, 79, 1, 56, 79, 1, 56, 79, 1, 56, 78, 1,
778  56, 78, 1, 56, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55,
779  78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78,
780  1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1, 55, 78, 1,
781  55, 78, 1, 55, 78, 1, 56, 78, 1, 56, 78, 1, 56, 78, 1, 56, 79, 1, 56, 79, 1, 56,
782  79, 1, 56, 79, 1, 57, 79, 1, 57, 79, 1, 57, 80, 1, 57, 80, 1, 57, 80, 1, 57, 80,
783  1, 58, 81, 1, 58, 81, 1, 58, 81, 1, 58, 81, 1, 59, 82, 1, 59, 82, 1, 59, 82, 1,
784  60, 83, 1, 60, 83, 1, 60, 83, 1, 60, 84, 1, 61, 84, 1, 61, 84, 1, 61, 85, 1, 62,
785  85, 1, 62, 85, 1, 63, 86, 1, 63, 86, 1, 63, 87, 1, 64, 87, 1, 64, 88, 1, 65, 88,
786  1, 65, 88, 1, 65, 89, 1, 66, 89, 1, 66, 90, 1, 67, 90, 1, 67, 91, 1, 68, 91, 1,
787  68, 92, 1, 69, 92, 1, 69, 93, 1, 70, 94, 1, 70, 94, 1, 71, 95, 1, 71, 95, 1, 72,
788  96, 1, 72, 96, 1, 73, 97, 1, 73, 98, 1, 74, 98, 1, 75, 99, 1, 75, 99, 1, 76, 100,
789  1, 76, 100, 1, 77, 100, 1, 77, 100, 1, 78, 100, 1, 79, 100, 1, 79, 100, 1, 80, 100, 1,
790  81, 99, 1, 82, 98, 1, 83, 98, 1, 84, 97, 1, 85, 95, 1, 88, 92, 41, 27, 189, 1, 33,
791  38, 1, 31, 40, 1, 29, 42, 1, 28, 43, 1, 27, 44, 1, 26, 45, 1, 26, 45, 1, 26, 46,
792  1, 26, 47, 1, 25, 47, 1, 25, 48, 1, 25, 49, 1, 26, 49, 1, 26, 50, 1, 26, 50, 1,
793  27, 51, 1, 27, 52, 1, 28, 52, 1, 28, 53, 1, 29, 53, 1, 30, 54, 1, 30, 54, 1, 31,
794  55, 1, 31, 55, 1, 32, 56, 1, 33, 56, 1, 33, 57, 1, 34, 57, 1, 34, 58, 1, 35, 58,
795  1, 35, 59, 1, 36, 59, 1, 36, 60, 1, 37, 60, 1, 37, 61, 1, 37, 61, 1, 38, 61, 1,
796  38, 62, 1, 39, 62, 1, 39, 63, 1, 40, 63, 1, 40, 63, 1, 41, 64, 1, 41, 64, 1, 41,
797  64, 1, 42, 65, 1, 42, 65, 1, 42, 66, 1, 43, 66, 1, 43, 66, 1, 43, 66, 1, 44, 67,
798  1, 44, 67, 1, 44, 67, 1, 44, 67, 1, 45, 68, 1, 45, 68, 1, 45, 68, 1, 45, 68, 1,
799  46, 68, 1, 46, 69, 1, 46, 69, 1, 46, 69, 1, 46, 69, 1, 47, 69, 1, 47, 70, 1, 47,
800  70, 1, 47, 70, 1, 47, 70, 1, 47, 70, 1, 47, 70, 1, 48, 70, 1, 48, 70, 1, 48, 70,
801  1, 48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 71, 1,
802  48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 71, 1, 48, 70, 1, 48,
803  70, 1, 48, 70, 1, 48, 70, 1, 47, 70, 1, 47, 70, 1, 47, 70, 1, 47, 70, 1, 47, 70,
804  1, 47, 70, 1, 47, 69, 1, 47, 69, 1, 46, 69, 1, 46, 69, 1, 46, 69, 1, 46, 68, 1,
805  46, 68, 1, 45, 68, 1, 45, 68, 1, 45, 68, 1, 44, 67, 1, 44, 67, 1, 44, 67, 1, 44,
806  67, 1, 43, 66, 1, 43, 66, 1, 43, 66, 1, 42, 65, 1, 42, 65, 1, 42, 65, 1, 41, 64,
807  1, 41, 64, 1, 41, 64, 1, 40, 63, 1, 40, 63, 1, 39, 63, 1, 39, 62, 1, 38, 62, 1,
808  38, 61, 1, 38, 61, 1, 37, 61, 1, 37, 60, 1, 36, 60, 1, 36, 59, 1, 35, 59, 1, 35,
809  58, 1, 34, 58, 1, 34, 57, 1, 33, 57, 1, 33, 56, 1, 32, 56, 1, 31, 55, 1, 31, 55,
810  1, 30, 54, 1, 30, 54, 1, 29, 53, 1, 28, 53, 1, 28, 52, 1, 27, 52, 1, 27, 51, 1,
811  26, 50, 1, 26, 50, 1, 26, 49, 1, 25, 49, 1, 25, 48, 1, 25, 47, 1, 26, 47, 1, 26,
812  46, 1, 26, 45, 1, 26, 45, 1, 27, 44, 1, 28, 43, 1, 29, 42, 1, 30, 40, 1, 33, 38,
813  42, 29, 114, 1, 59, 65, 1, 57, 67, 1, 55, 68, 1, 54, 69, 1, 54, 70, 1, 53, 71, 1,
814  53, 71, 1, 52, 71, 1, 52, 71, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
815  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
816  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 3, 25, 31, 52, 72, 93, 99, 3, 23, 34,
817  52, 72, 90, 101, 3, 21, 37, 52, 72, 86, 103, 3, 20, 40, 52, 72, 83, 104, 3, 20, 43, 52,
818  72, 80, 104, 3, 19, 47, 52, 72, 77, 105, 3, 18, 50, 52, 72, 74, 105, 1, 18, 106, 1, 18,
819  106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 19, 105, 1, 19, 104,
820  1, 20, 104, 1, 21, 103, 1, 22, 101, 1, 24, 99, 1, 27, 97, 1, 30, 94, 1, 33, 91, 1,
821  36, 88, 1, 39, 84, 1, 43, 81, 1, 45, 78, 1, 45, 79, 1, 44, 80, 1, 43, 81, 1, 43,
822  81, 1, 42, 82, 1, 41, 83, 1, 40, 83, 1, 40, 84, 1, 39, 85, 1, 38, 86, 1, 37, 86,
823  1, 37, 87, 2, 36, 61, 63, 88, 2, 35, 60, 63, 88, 2, 35, 60, 64, 89, 2, 34, 59, 65,
824  90, 2, 33, 58, 66, 91, 2, 33, 57, 66, 91, 2, 32, 57, 67, 92, 2, 32, 56, 68, 92, 2,
825  31, 55, 69, 93, 2, 31, 55, 69, 93, 2, 31, 54, 70, 93, 2, 31, 53, 71, 93, 2, 31, 52,
826  71, 93, 2, 31, 52, 72, 93, 2, 31, 51, 73, 92, 2, 32, 50, 74, 92, 2, 32, 49, 74, 91,
827  2, 33, 49, 75, 91, 2, 34, 48, 76, 90, 2, 35, 46, 77, 88, 2, 37, 45, 79, 87, 43, 42,
828  157, 1, 59, 65, 1, 57, 67, 1, 56, 69, 1, 55, 70, 1, 54, 70, 1, 53, 71, 1, 53, 71,
829  1, 53, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
830  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
831  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
832  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
833  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
834  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 21, 102, 1, 15, 109, 1, 13, 111, 1, 12, 112,
835  1, 11, 113, 1, 11, 113, 1, 10, 114, 1, 10, 114, 1, 10, 115, 1, 9, 115, 1, 9, 115, 1,
836  9, 115, 1, 10, 115, 1, 10, 114, 1, 10, 114, 1, 11, 114, 1, 11, 113, 1, 12, 112, 1, 13,
837  111, 1, 15, 109, 1, 19, 105, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
838  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
839  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
840  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
841  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
842  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 53, 72, 1, 53, 71, 1, 53,
843  71, 1, 54, 71, 1, 54, 70, 1, 55, 69, 1, 56, 68, 1, 58, 66, 44, 130, 190, 1, 57, 84,
844  1, 57, 84, 1, 57, 83, 1, 56, 82, 1, 56, 82, 1, 56, 81, 1, 55, 81, 1, 55, 80, 1,
845  55, 80, 1, 55, 79, 1, 54, 79, 1, 54, 78, 1, 54, 78, 1, 54, 77, 1, 53, 77, 1, 53,
846  76, 1, 53, 76, 1, 52, 75, 1, 52, 75, 1, 52, 74, 1, 52, 73, 1, 51, 73, 1, 51, 72,
847  1, 51, 72, 1, 50, 71, 1, 50, 71, 1, 50, 70, 1, 50, 70, 1, 49, 69, 1, 49, 69, 1,
848  49, 68, 1, 49, 68, 1, 48, 67, 1, 48, 67, 1, 48, 66, 1, 47, 66, 1, 47, 65, 1, 47,
849  64, 1, 47, 64, 1, 46, 63, 1, 46, 63, 1, 46, 62, 1, 45, 62, 1, 45, 61, 1, 45, 61,
850  1, 45, 60, 1, 44, 60, 1, 44, 59, 1, 44, 59, 1, 43, 58, 1, 43, 58, 1, 43, 57, 1,
851  43, 56, 1, 43, 56, 1, 43, 55, 1, 43, 55, 1, 43, 54, 1, 44, 53, 1, 45, 52, 1, 47,
852  51, 45, 90, 109, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105,
853  1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1,
854  20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 1, 20, 105, 46, 134, 160, 1, 56,
855  68, 1, 54, 71, 1, 52, 72, 1, 51, 74, 1, 50, 74, 1, 49, 75, 1, 49, 76, 1, 48, 76,
856  1, 48, 77, 1, 48, 77, 1, 47, 77, 1, 47, 77, 1, 47, 78, 1, 47, 78, 1, 47, 77, 1,
857  47, 77, 1, 48, 77, 1, 48, 77, 1, 48, 76, 1, 49, 76, 1, 49, 75, 1, 50, 75, 1, 51,
858  74, 1, 52, 72, 1, 54, 71, 1, 56, 69, 47, 14, 181, 1, 94, 98, 1, 91, 101, 1, 90, 102,
859  1, 89, 104, 1, 88, 104, 1, 88, 105, 1, 87, 106, 1, 86, 106, 1, 86, 106, 1, 85, 106, 1,
860  85, 106, 1, 84, 106, 1, 84, 106, 1, 83, 106, 1, 83, 105, 1, 83, 105, 1, 82, 104, 1, 82,
861  104, 1, 81, 103, 1, 81, 103, 1, 80, 103, 1, 80, 102, 1, 79, 102, 1, 79, 101, 1, 78, 101,
862  1, 78, 100, 1, 77, 100, 1, 77, 99, 1, 77, 99, 1, 76, 98, 1, 76, 98, 1, 75, 97, 1,
863  75, 97, 1, 74, 96, 1, 74, 96, 1, 73, 96, 1, 73, 95, 1, 72, 95, 1, 72, 94, 1, 71,
864  94, 1, 71, 93, 1, 70, 93, 1, 70, 92, 1, 70, 92, 1, 69, 91, 1, 69, 91, 1, 68, 90,
865  1, 68, 90, 1, 67, 90, 1, 67, 89, 1, 66, 89, 1, 66, 88, 1, 65, 88, 1, 65, 87, 1,
866  64, 87, 1, 64, 86, 1, 63, 86, 1, 63, 85, 1, 63, 85, 1, 62, 84, 1, 62, 84, 1, 61,
867  83, 1, 61, 83, 1, 60, 83, 1, 60, 82, 1, 59, 82, 1, 59, 81, 1, 58, 81, 1, 58, 80,
868  1, 57, 80, 1, 57, 79, 1, 56, 79, 1, 56, 78, 1, 56, 78, 1, 55, 77, 1, 55, 77, 1,
869  54, 77, 1, 54, 76, 1, 53, 76, 1, 53, 75, 1, 52, 75, 1, 52, 74, 1, 51, 74, 1, 51,
870  73, 1, 50, 73, 1, 50, 72, 1, 50, 72, 1, 49, 71, 1, 49, 71, 1, 48, 71, 1, 48, 70,
871  1, 47, 70, 1, 47, 69, 1, 46, 69, 1, 46, 68, 1, 45, 68, 1, 45, 67, 1, 44, 67, 1,
872  44, 66, 1, 43, 66, 1, 43, 65, 1, 43, 65, 1, 42, 64, 1, 42, 64, 1, 41, 64, 1, 41,
873  63, 1, 40, 63, 1, 40, 62, 1, 39, 62, 1, 39, 61, 1, 38, 61, 1, 38, 60, 1, 37, 60,
874  1, 37, 59, 1, 36, 59, 1, 36, 58, 1, 36, 58, 1, 35, 58, 1, 35, 57, 1, 34, 57, 1,
875  34, 56, 1, 33, 56, 1, 33, 55, 1, 32, 55, 1, 32, 54, 1, 31, 54, 1, 31, 53, 1, 30,
876  53, 1, 30, 52, 1, 29, 52, 1, 29, 51, 1, 29, 51, 1, 28, 51, 1, 28, 50, 1, 27, 50,
877  1, 27, 49, 1, 26, 49, 1, 26, 48, 1, 25, 48, 1, 25, 47, 1, 24, 47, 1, 24, 46, 1,
878  23, 46, 1, 23, 45, 1, 22, 45, 1, 22, 45, 1, 22, 44, 1, 21, 44, 1, 21, 43, 1, 20,
879  43, 1, 20, 42, 1, 19, 42, 1, 19, 41, 1, 19, 41, 1, 18, 40, 1, 18, 40, 1, 18, 39,
880  1, 18, 39, 1, 18, 38, 1, 19, 38, 1, 19, 37, 1, 19, 37, 1, 20, 36, 1, 21, 35, 1,
881  22, 34, 1, 24, 33, 1, 28, 29, 48, 26, 160, 1, 55, 69, 1, 51, 74, 1, 47, 77, 1, 45,
882  79, 1, 43, 81, 1, 42, 83, 1, 40, 84, 1, 39, 85, 1, 38, 87, 1, 36, 88, 1, 35, 89,
883  1, 34, 90, 1, 33, 90, 1, 33, 91, 1, 32, 92, 1, 31, 93, 1, 30, 93, 1, 30, 94, 1,
884  29, 95, 1, 29, 95, 2, 28, 60, 65, 96, 2, 27, 55, 69, 97, 2, 27, 53, 71, 97, 2, 26,
885  52, 73, 98, 2, 26, 50, 74, 98, 2, 25, 49, 75, 99, 2, 25, 48, 76, 99, 2, 24, 47, 77,
886  100, 2, 24, 47, 78, 100, 2, 23, 46, 78, 101, 2, 23, 45, 79, 101, 2, 23, 45, 80, 102, 2,
887  22, 44, 80, 102, 2, 22, 43, 81, 102, 2, 22, 43, 81, 103, 2, 21, 42, 82, 103, 2, 21, 42,
888  82, 103, 2, 21, 42, 82, 104, 2, 20, 41, 83, 104, 2, 20, 41, 83, 104, 2, 20, 40, 84, 105,
889  2, 20, 40, 84, 105, 2, 19, 40, 84, 105, 2, 19, 40, 84, 105, 2, 19, 39, 85, 105, 2, 19,
890  39, 85, 105, 2, 19, 39, 85, 106, 2, 18, 39, 85, 106, 2, 18, 39, 85, 106, 2, 18, 39, 86,
891  106, 2, 18, 39, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2,
892  18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38,
893  86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106,
894  2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18,
895  38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86,
896  106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2,
897  18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38,
898  86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 39, 86, 106, 2, 18, 39, 86, 106,
899  2, 18, 39, 85, 106, 2, 18, 39, 85, 106, 2, 19, 39, 85, 106, 2, 19, 39, 85, 106, 2, 19,
900  40, 85, 105, 2, 19, 40, 85, 105, 2, 19, 40, 84, 105, 2, 20, 40, 84, 105, 2, 20, 40, 84,
901  104, 2, 20, 41, 83, 104, 2, 20, 41, 83, 104, 2, 21, 42, 83, 104, 2, 21, 42, 82, 104, 2,
902  21, 43, 82, 103, 2, 22, 43, 81, 103, 2, 22, 43, 81, 102, 2, 22, 44, 80, 102, 2, 23, 45,
903  80, 102, 2, 23, 45, 79, 101, 2, 24, 46, 78, 101, 2, 24, 46, 78, 100, 2, 24, 47, 77, 100,
904  2, 25, 48, 76, 100, 2, 25, 49, 75, 99, 2, 26, 50, 74, 99, 2, 26, 51, 73, 98, 2, 27,
905  53, 71, 97, 2, 28, 55, 69, 97, 2, 28, 58, 67, 96, 1, 29, 96, 1, 29, 95, 1, 30, 95,
906  1, 31, 94, 1, 31, 93, 1, 32, 93, 1, 33, 92, 1, 34, 91, 1, 34, 90, 1, 35, 89, 1,
907  36, 88, 1, 37, 87, 1, 39, 86, 1, 40, 85, 1, 41, 83, 1, 43, 81, 1, 45, 79, 1, 47,
908  77, 1, 50, 74, 1, 54, 70, 49, 26, 157, 1, 70, 72, 1, 66, 72, 1, 63, 72, 1, 59, 72,
909  1, 55, 72, 1, 51, 72, 1, 47, 72, 1, 43, 72, 1, 39, 72, 1, 35, 72, 1, 31, 72, 1,
910  28, 72, 1, 25, 72, 1, 23, 72, 1, 21, 72, 1, 20, 72, 1, 19, 72, 1, 19, 72, 1, 18,
911  72, 1, 18, 72, 1, 18, 72, 1, 18, 72, 1, 18, 72, 1, 18, 72, 1, 18, 72, 1, 19, 72,
912  1, 19, 72, 2, 20, 48, 52, 72, 2, 20, 44, 52, 72, 2, 21, 40, 52, 72, 2, 22, 36, 52,
913  72, 2, 24, 32, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
914  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
915  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
916  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
917  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
918  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
919  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
920  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
921  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
922  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
923  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
924  72, 1, 26, 98, 1, 23, 101, 1, 22, 103, 1, 21, 104, 1, 20, 105, 1, 19, 105, 1, 19, 106,
925  1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 19, 106, 1,
926  19, 106, 1, 20, 105, 1, 20, 104, 1, 21, 103, 1, 23, 102, 1, 25, 99, 50, 26, 157, 1, 53,
927  68, 1, 48, 73, 1, 45, 77, 1, 42, 79, 1, 39, 81, 1, 37, 84, 1, 36, 86, 1, 34, 87,
928  1, 32, 88, 1, 31, 89, 1, 30, 91, 1, 28, 92, 1, 27, 93, 1, 26, 94, 1, 25, 95, 1,
929  25, 96, 1, 24, 97, 1, 23, 97, 1, 22, 98, 1, 22, 99, 2, 21, 57, 64, 99, 2, 21, 52,
930  69, 100, 2, 20, 49, 72, 100, 2, 19, 47, 74, 101, 2, 19, 45, 76, 101, 2, 19, 44, 77, 102,
931  2, 18, 42, 78, 102, 2, 18, 41, 79, 102, 2, 17, 40, 80, 103, 2, 17, 40, 81, 103, 2, 17,
932  39, 82, 103, 2, 17, 38, 82, 104, 2, 16, 38, 83, 104, 2, 16, 37, 83, 104, 2, 16, 37, 83,
933  104, 2, 16, 37, 84, 104, 2, 16, 36, 84, 104, 2, 17, 36, 84, 104, 2, 17, 35, 84, 104, 2,
934  18, 35, 84, 104, 2, 19, 34, 84, 104, 2, 20, 33, 84, 104, 2, 21, 32, 84, 104, 2, 23, 30,
935  83, 104, 1, 83, 104, 1, 82, 104, 1, 82, 104, 1, 81, 104, 1, 81, 103, 1, 80, 103, 1, 79,
936  103, 1, 78, 102, 1, 77, 102, 1, 77, 102, 1, 76, 101, 1, 75, 101, 1, 74, 100, 1, 73, 100,
937  1, 72, 99, 1, 71, 98, 1, 69, 98, 1, 68, 97, 1, 67, 96, 1, 66, 95, 1, 65, 94, 1,
938  64, 93, 1, 63, 92, 1, 62, 92, 1, 61, 91, 1, 60, 90, 1, 59, 89, 1, 57, 88, 1, 56,
939  87, 1, 55, 86, 1, 54, 85, 1, 53, 84, 1, 52, 83, 1, 51, 81, 1, 49, 80, 1, 48, 79,
940  1, 47, 78, 1, 46, 77, 1, 45, 76, 1, 44, 75, 1, 42, 74, 1, 41, 73, 1, 40, 71, 1,
941  39, 70, 1, 38, 69, 1, 37, 68, 1, 35, 67, 1, 34, 66, 1, 33, 65, 1, 32, 63, 1, 31,
942  62, 1, 29, 61, 1, 28, 60, 1, 27, 59, 1, 26, 58, 1, 25, 57, 1, 23, 55, 1, 22, 54,
943  1, 21, 53, 1, 20, 52, 1, 18, 51, 1, 17, 50, 1, 16, 48, 1, 15, 47, 2, 14, 46, 92,
944  98, 2, 12, 45, 90, 100, 2, 12, 44, 88, 101, 1, 12, 102, 1, 12, 103, 1, 12, 103, 1, 12,
945  104, 1, 12, 104, 1, 12, 104, 1, 12, 104, 1, 12, 104, 1, 12, 104, 1, 12, 105, 1, 12, 105,
946  1, 12, 105, 1, 12, 105, 1, 12, 105, 1, 12, 105, 1, 12, 105, 1, 12, 105, 1, 12, 105, 1,
947  12, 105, 1, 12, 105, 51, 26, 160, 1, 53, 70, 1, 49, 75, 1, 44, 79, 1, 41, 82, 1, 39,
948  84, 1, 36, 86, 1, 35, 88, 1, 33, 89, 1, 31, 90, 1, 30, 92, 1, 28, 93, 1, 27, 94,
949  1, 26, 95, 1, 25, 96, 1, 24, 97, 1, 23, 97, 1, 23, 98, 1, 22, 99, 1, 22, 99, 1,
950  21, 100, 2, 21, 56, 67, 101, 2, 21, 51, 72, 101, 2, 21, 48, 75, 102, 2, 21, 46, 76, 102,
951  2, 21, 44, 78, 102, 2, 21, 43, 79, 103, 2, 21, 42, 80, 103, 2, 22, 40, 81, 103, 2, 23,
952  39, 82, 104, 2, 23, 38, 82, 104, 2, 24, 37, 83, 104, 2, 26, 36, 83, 104, 2, 29, 34, 84,
953  104, 1, 84, 104, 1, 84, 104, 1, 84, 104, 1, 84, 104, 1, 84, 104, 1, 84, 104, 1, 84, 104,
954  1, 83, 104, 1, 83, 104, 1, 82, 104, 1, 82, 104, 1, 81, 104, 1, 80, 103, 1, 80, 103, 1,
955  79, 103, 1, 77, 102, 1, 76, 102, 1, 74, 101, 1, 72, 101, 1, 57, 100, 1, 52, 100, 1, 51,
956  99, 1, 49, 98, 1, 48, 98, 1, 48, 97, 1, 47, 96, 1, 47, 95, 1, 47, 94, 1, 46, 93,
957  1, 46, 92, 1, 46, 91, 1, 46, 92, 1, 47, 94, 1, 47, 95, 1, 47, 96, 1, 48, 97, 1,
958  49, 98, 1, 50, 99, 1, 52, 100, 1, 55, 101, 1, 63, 102, 1, 69, 102, 1, 72, 103, 1, 74,
959  104, 1, 76, 104, 1, 78, 105, 1, 79, 105, 1, 80, 106, 1, 81, 106, 1, 82, 107, 1, 83, 107,
960  1, 84, 107, 1, 85, 108, 1, 86, 108, 1, 86, 108, 1, 87, 108, 1, 87, 108, 1, 88, 109, 1,
961  88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 89, 109, 1, 89, 109, 1, 88, 109, 1, 88,
962  109, 1, 88, 109, 1, 88, 109, 1, 88, 108, 1, 87, 108, 1, 87, 108, 1, 86, 108, 1, 85, 108,
963  1, 84, 107, 2, 21, 28, 83, 107, 2, 19, 30, 82, 107, 2, 18, 32, 80, 106, 2, 17, 34, 78,
964  106, 2, 16, 36, 75, 105, 2, 16, 39, 71, 105, 2, 15, 45, 64, 104, 1, 15, 104, 1, 15, 103,
965  1, 15, 102, 1, 15, 102, 1, 15, 101, 1, 15, 100, 1, 15, 99, 1, 16, 98, 1, 16, 97, 1,
966  17, 96, 1, 18, 95, 1, 19, 93, 1, 21, 92, 1, 23, 90, 1, 25, 88, 1, 27, 86, 1, 29,
967  83, 1, 33, 80, 1, 37, 76, 1, 44, 69, 52, 29, 157, 1, 65, 92, 1, 64, 92, 1, 64, 92,
968  1, 63, 92, 1, 62, 92, 1, 62, 92, 1, 61, 92, 1, 61, 92, 1, 60, 92, 1, 60, 92, 1,
969  59, 92, 1, 58, 92, 1, 58, 92, 1, 57, 92, 1, 57, 92, 1, 56, 92, 1, 55, 92, 1, 55,
970  92, 1, 54, 92, 1, 54, 92, 1, 53, 92, 1, 52, 92, 1, 52, 92, 1, 51, 92, 1, 51, 92,
971  1, 50, 92, 1, 50, 92, 1, 49, 92, 1, 48, 92, 1, 48, 92, 2, 47, 71, 72, 92, 2, 47,
972  70, 72, 92, 2, 46, 70, 72, 92, 2, 45, 69, 72, 92, 2, 45, 69, 72, 92, 2, 44, 68, 72,
973  92, 2, 44, 68, 72, 92, 2, 43, 67, 72, 92, 2, 43, 66, 72, 92, 2, 42, 66, 72, 92, 2,
974  41, 65, 72, 92, 2, 41, 65, 72, 92, 2, 40, 64, 72, 92, 2, 40, 63, 72, 92, 2, 39, 63,
975  72, 92, 2, 38, 62, 72, 92, 2, 38, 62, 72, 92, 2, 37, 61, 72, 92, 2, 37, 60, 72, 92,
976  2, 36, 60, 72, 92, 2, 35, 59, 72, 92, 2, 35, 59, 72, 92, 2, 34, 58, 72, 92, 2, 34,
977  58, 72, 92, 2, 33, 57, 72, 92, 2, 33, 56, 72, 92, 2, 32, 56, 72, 92, 2, 31, 55, 72,
978  92, 2, 31, 55, 72, 92, 2, 30, 54, 72, 92, 2, 30, 53, 72, 92, 2, 29, 53, 72, 92, 2,
979  28, 52, 72, 92, 2, 28, 52, 72, 92, 2, 27, 51, 72, 92, 2, 27, 50, 72, 92, 2, 26, 50,
980  72, 92, 2, 25, 49, 72, 92, 2, 25, 49, 72, 92, 2, 24, 48, 72, 92, 2, 24, 47, 72, 92,
981  2, 23, 47, 72, 92, 2, 23, 46, 72, 92, 2, 22, 46, 72, 92, 2, 21, 45, 72, 92, 2, 21,
982  45, 72, 92, 2, 20, 44, 72, 92, 2, 20, 43, 72, 92, 2, 19, 43, 72, 92, 2, 18, 42, 72,
983  92, 1, 18, 98, 1, 17, 100, 1, 17, 101, 1, 16, 102, 1, 16, 103, 1, 16, 104, 1, 16, 104,
984  1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1,
985  16, 103, 1, 16, 103, 1, 16, 102, 1, 16, 101, 1, 16, 99, 1, 16, 96, 1, 72, 92, 1, 72,
986  92, 1, 72, 92, 1, 72, 92, 1, 72, 92, 1, 72, 92, 1, 72, 92, 1, 72, 92, 1, 58, 97,
987  1, 55, 99, 1, 54, 101, 1, 53, 102, 1, 52, 103, 1, 51, 103, 1, 51, 104, 1, 50, 104, 1,
988  50, 104, 1, 50, 104, 1, 50, 104, 1, 50, 104, 1, 50, 104, 1, 51, 104, 1, 51, 103, 1, 52,
989  103, 1, 52, 102, 1, 53, 101, 1, 55, 100, 1, 57, 97, 53, 29, 160, 1, 25, 91, 1, 25, 95,
990  1, 25, 96, 1, 25, 98, 1, 25, 99, 1, 25, 99, 1, 25, 100, 1, 25, 100, 1, 25, 100, 1,
991  25, 100, 1, 25, 100, 1, 25, 100, 1, 25, 100, 1, 25, 100, 1, 25, 100, 1, 25, 99, 1, 25,
992  98, 1, 25, 97, 1, 25, 96, 1, 25, 94, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45,
993  1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1,
994  25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25,
995  45, 1, 25, 45, 1, 25, 45, 2, 25, 45, 59, 72, 2, 25, 45, 53, 77, 2, 25, 45, 49, 80,
996  1, 25, 83, 1, 25, 85, 1, 25, 87, 1, 25, 89, 1, 25, 90, 1, 25, 92, 1, 25, 93, 1,
997  25, 94, 1, 25, 95, 1, 25, 96, 1, 25, 97, 1, 25, 98, 1, 25, 99, 1, 25, 100, 1, 25,
998  100, 1, 25, 101, 1, 25, 102, 2, 25, 64, 67, 102, 2, 25, 57, 73, 103, 2, 26, 53, 76, 104,
999  2, 26, 50, 77, 104, 2, 27, 47, 79, 105, 2, 27, 45, 80, 105, 2, 28, 43, 81, 105, 2, 29,
1000  40, 82, 106, 2, 31, 38, 83, 106, 1, 84, 107, 1, 85, 107, 1, 85, 107, 1, 86, 107, 1, 86,
1001  108, 1, 87, 108, 1, 87, 108, 1, 87, 108, 1, 88, 108, 1, 88, 108, 1, 88, 109, 1, 88, 109,
1002  1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1,
1003  88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 108, 1, 88, 108, 1, 87,
1004  108, 1, 87, 108, 1, 87, 108, 1, 86, 108, 1, 86, 107, 2, 22, 27, 85, 107, 2, 20, 29, 84,
1005  107, 2, 18, 31, 83, 106, 2, 17, 32, 82, 106, 2, 16, 34, 81, 106, 2, 16, 35, 80, 105, 2,
1006  15, 37, 78, 105, 2, 15, 39, 75, 104, 2, 14, 42, 72, 104, 2, 14, 48, 66, 103, 1, 14, 103,
1007  1, 15, 102, 1, 15, 101, 1, 15, 101, 1, 15, 100, 1, 16, 99, 1, 16, 98, 1, 17, 97, 1,
1008  18, 96, 1, 19, 95, 1, 21, 94, 1, 22, 92, 1, 24, 91, 1, 26, 89, 1, 28, 87, 1, 30,
1009  85, 1, 33, 83, 1, 36, 80, 1, 40, 76, 1, 46, 70, 54, 26, 160, 1, 79, 94, 1, 74, 99,
1010  1, 71, 102, 1, 68, 104, 1, 65, 106, 1, 63, 107, 1, 61, 108, 1, 59, 109, 1, 57, 110, 1,
1011  56, 110, 1, 54, 110, 1, 53, 111, 1, 51, 111, 1, 50, 111, 1, 49, 111, 1, 48, 110, 1, 46,
1012  110, 1, 45, 110, 1, 44, 109, 1, 43, 109, 2, 42, 82, 92, 108, 2, 41, 78, 95, 107, 2, 40,
1013  75, 97, 105, 2, 39, 73, 100, 101, 1, 38, 70, 1, 38, 68, 1, 37, 67, 1, 36, 65, 1, 35,
1014  64, 1, 35, 62, 1, 34, 61, 1, 33, 60, 1, 33, 59, 1, 32, 58, 1, 31, 57, 1, 31, 56,
1015  1, 30, 55, 1, 30, 54, 1, 29, 53, 1, 29, 53, 1, 28, 52, 1, 28, 51, 1, 27, 50, 1,
1016  27, 50, 1, 27, 49, 1, 26, 49, 1, 26, 48, 1, 26, 48, 1, 25, 47, 1, 25, 47, 2, 25,
1017  46, 68, 76, 2, 25, 46, 62, 81, 2, 24, 46, 59, 84, 2, 24, 45, 56, 86, 2, 24, 45, 54,
1018  88, 2, 24, 45, 52, 90, 2, 24, 44, 50, 92, 2, 23, 44, 49, 93, 2, 23, 44, 48, 94, 2,
1019  23, 44, 46, 95, 2, 23, 43, 45, 97, 2, 23, 43, 44, 98, 1, 23, 99, 1, 23, 100, 1, 23,
1020  100, 1, 23, 101, 1, 23, 102, 1, 23, 103, 1, 23, 103, 1, 23, 104, 1, 23, 105, 2, 23, 66,
1021  76, 105, 2, 23, 63, 78, 106, 2, 23, 62, 80, 106, 2, 23, 60, 82, 107, 2, 23, 59, 83, 107,
1022  2, 23, 58, 84, 108, 2, 23, 57, 85, 108, 2, 23, 56, 85, 108, 2, 23, 55, 86, 109, 2, 23,
1023  54, 87, 109, 2, 23, 53, 88, 109, 2, 23, 52, 88, 109, 2, 23, 51, 88, 110, 2, 24, 51, 89,
1024  110, 2, 24, 50, 89, 110, 2, 24, 50, 90, 110, 2, 24, 49, 90, 110, 2, 24, 48, 90, 110, 2,
1025  24, 48, 90, 111, 2, 24, 47, 90, 111, 2, 25, 47, 91, 111, 2, 25, 46, 91, 111, 2, 25, 46,
1026  91, 111, 2, 25, 46, 91, 111, 2, 25, 47, 91, 111, 2, 26, 47, 91, 111, 2, 26, 47, 91, 111,
1027  2, 26, 48, 90, 111, 2, 27, 48, 90, 111, 2, 27, 48, 90, 111, 2, 27, 49, 90, 110, 2, 27,
1028  49, 89, 110, 2, 28, 50, 89, 110, 2, 28, 50, 88, 110, 2, 29, 51, 88, 110, 2, 29, 52, 87,
1029  109, 2, 29, 53, 86, 109, 2, 30, 54, 85, 109, 2, 30, 55, 84, 109, 2, 31, 56, 83, 108, 2,
1030  31, 58, 81, 108, 2, 32, 60, 79, 107, 2, 32, 64, 75, 107, 1, 33, 106, 1, 33, 106, 1, 34,
1031  105, 1, 34, 105, 1, 35, 104, 1, 36, 103, 1, 37, 102, 1, 38, 101, 1, 39, 101, 1, 40, 100,
1032  1, 41, 98, 1, 42, 97, 1, 43, 96, 1, 45, 95, 1, 46, 93, 1, 48, 91, 1, 50, 89, 1,
1033  53, 87, 1, 56, 83, 1, 61, 79, 55, 29, 157, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16,
1034  104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104,
1035  1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1,
1036  16, 104, 1, 16, 104, 2, 16, 37, 83, 104, 2, 16, 36, 83, 104, 2, 17, 36, 82, 104, 2, 17,
1037  36, 82, 103, 2, 17, 36, 82, 103, 2, 17, 36, 81, 103, 2, 18, 35, 81, 102, 2, 18, 35, 81,
1038  102, 2, 19, 34, 80, 102, 2, 20, 33, 80, 101, 2, 22, 31, 80, 101, 2, 24, 28, 79, 101, 1,
1039  79, 100, 1, 79, 100, 1, 78, 100, 1, 78, 99, 1, 78, 99, 1, 77, 99, 1, 77, 98, 1, 77,
1040  98, 1, 76, 98, 1, 76, 97, 1, 76, 97, 1, 75, 97, 1, 75, 96, 1, 75, 96, 1, 74, 96,
1041  1, 74, 95, 1, 74, 95, 1, 73, 95, 1, 73, 94, 1, 73, 94, 1, 72, 94, 1, 72, 93, 1,
1042  71, 93, 1, 71, 93, 1, 71, 92, 1, 70, 92, 1, 70, 92, 1, 70, 91, 1, 69, 91, 1, 69,
1043  91, 1, 69, 90, 1, 68, 90, 1, 68, 90, 1, 68, 89, 1, 67, 89, 1, 67, 89, 1, 67, 88,
1044  1, 66, 88, 1, 66, 88, 1, 66, 87, 1, 65, 87, 1, 65, 87, 1, 65, 86, 1, 64, 86, 1,
1045  64, 86, 1, 64, 85, 1, 63, 85, 1, 63, 85, 1, 63, 84, 1, 62, 84, 1, 62, 84, 1, 62,
1046  83, 1, 61, 83, 1, 61, 83, 1, 61, 82, 1, 60, 82, 1, 60, 82, 1, 60, 81, 1, 59, 81,
1047  1, 59, 81, 1, 59, 80, 1, 58, 80, 1, 58, 80, 1, 58, 79, 1, 57, 79, 1, 57, 79, 1,
1048  57, 78, 1, 56, 78, 1, 56, 78, 1, 56, 77, 1, 55, 77, 1, 55, 77, 1, 55, 76, 1, 54,
1049  76, 1, 54, 76, 1, 54, 75, 1, 53, 75, 1, 53, 74, 1, 53, 74, 1, 52, 74, 1, 52, 73,
1050  1, 52, 73, 1, 51, 73, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 71, 1, 51, 71, 1,
1051  51, 71, 1, 51, 70, 1, 51, 70, 1, 52, 69, 1, 53, 69, 1, 54, 68, 1, 55, 67, 1, 57,
1052  65, 56, 26, 160, 1, 55, 70, 1, 50, 74, 1, 46, 78, 1, 44, 81, 1, 42, 83, 1, 40, 85,
1053  1, 38, 87, 1, 37, 88, 1, 35, 89, 1, 34, 91, 1, 33, 92, 1, 31, 93, 1, 31, 94, 1,
1054  30, 95, 1, 29, 96, 1, 28, 96, 1, 27, 97, 1, 26, 98, 1, 26, 99, 1, 25, 99, 2, 25,
1055  58, 66, 100, 2, 24, 53, 71, 100, 2, 23, 51, 73, 101, 2, 23, 49, 75, 102, 2, 22, 47, 77,
1056  102, 2, 22, 46, 78, 102, 2, 22, 45, 79, 103, 2, 22, 44, 80, 103, 2, 21, 43, 81, 103, 2,
1057  21, 43, 81, 104, 2, 21, 42, 82, 104, 2, 21, 42, 82, 104, 2, 20, 41, 83, 104, 2, 20, 41,
1058  83, 104, 2, 20, 41, 83, 104, 2, 20, 40, 84, 104, 2, 20, 40, 84, 104, 2, 20, 40, 84, 105,
1059  2, 20, 40, 84, 105, 2, 20, 40, 84, 104, 2, 20, 40, 84, 104, 2, 20, 41, 83, 104, 2, 20,
1060  41, 83, 104, 2, 20, 41, 83, 104, 2, 21, 41, 83, 104, 2, 21, 42, 82, 104, 2, 21, 42, 82,
1061  104, 2, 21, 43, 81, 103, 2, 22, 44, 80, 103, 2, 22, 44, 80, 103, 2, 22, 45, 79, 102, 2,
1062  23, 46, 78, 102, 2, 23, 48, 76, 101, 2, 24, 49, 75, 101, 2, 24, 51, 73, 100, 2, 25, 54,
1063  70, 100, 2, 25, 61, 63, 99, 1, 26, 99, 1, 27, 98, 1, 27, 97, 1, 28, 96, 1, 29, 96,
1064  1, 30, 95, 1, 31, 94, 1, 32, 93, 1, 33, 92, 1, 34, 91, 1, 32, 92, 1, 31, 93, 1,
1065  30, 94, 1, 29, 95, 1, 28, 96, 1, 27, 97, 1, 26, 98, 1, 26, 99, 1, 25, 100, 1, 24,
1066  100, 2, 23, 57, 67, 101, 2, 23, 53, 71, 102, 2, 22, 51, 73, 102, 2, 22, 49, 75, 103, 2,
1067  21, 48, 77, 103, 2, 21, 46, 78, 104, 2, 20, 45, 79, 104, 2, 20, 44, 80, 104, 2, 20, 43,
1068  81, 105, 2, 19, 43, 82, 105, 2, 19, 42, 83, 105, 2, 19, 41, 83, 106, 2, 19, 41, 84, 106,
1069  2, 19, 40, 84, 106, 2, 18, 40, 85, 106, 2, 18, 39, 85, 106, 2, 18, 39, 86, 106, 2, 18,
1070  39, 86, 106, 2, 18, 39, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86,
1071  106, 2, 18, 38, 86, 106, 2, 18, 39, 86, 106, 2, 18, 39, 86, 106, 2, 18, 39, 85, 106, 2,
1072  19, 40, 85, 106, 2, 19, 40, 84, 106, 2, 19, 41, 84, 105, 2, 19, 41, 83, 105, 2, 20, 42,
1073  82, 105, 2, 20, 43, 81, 105, 2, 20, 45, 80, 104, 2, 21, 46, 78, 104, 2, 21, 48, 76, 104,
1074  2, 21, 51, 74, 103, 2, 22, 56, 69, 103, 1, 22, 102, 1, 23, 102, 1, 24, 101, 1, 24, 100,
1075  1, 25, 100, 1, 26, 99, 1, 27, 98, 1, 28, 97, 1, 28, 96, 1, 29, 95, 1, 31, 94, 1,
1076  32, 92, 1, 33, 91, 1, 35, 89, 1, 37, 87, 1, 39, 85, 1, 42, 83, 1, 44, 80, 1, 48,
1077  76, 1, 53, 71, 57, 26, 160, 1, 56, 71, 1, 52, 75, 1, 49, 78, 1, 46, 80, 1, 44, 83,
1078  1, 43, 84, 1, 41, 86, 1, 40, 87, 1, 38, 89, 1, 37, 90, 1, 36, 91, 1, 35, 92, 1,
1079  34, 93, 1, 34, 94, 1, 33, 95, 1, 32, 96, 1, 31, 97, 1, 31, 97, 1, 30, 98, 1, 29,
1080  99, 2, 29, 61, 66, 99, 2, 28, 57, 71, 100, 2, 28, 55, 73, 101, 2, 27, 53, 75, 101, 2,
1081  27, 51, 76, 102, 2, 26, 50, 77, 102, 2, 26, 49, 78, 103, 2, 26, 48, 79, 103, 2, 25, 48,
1082  80, 104, 2, 25, 47, 81, 104, 2, 25, 46, 82, 104, 2, 24, 46, 82, 105, 2, 24, 45, 83, 105,
1083  2, 24, 45, 83, 105, 2, 24, 44, 84, 106, 2, 23, 44, 84, 106, 2, 23, 44, 85, 106, 2, 23,
1084  44, 85, 107, 2, 23, 43, 86, 107, 2, 23, 43, 86, 107, 2, 23, 43, 86, 107, 2, 23, 43, 86,
1085  108, 2, 23, 43, 87, 108, 2, 23, 43, 87, 108, 2, 23, 43, 87, 108, 2, 23, 43, 88, 109, 2,
1086  23, 43, 88, 109, 2, 23, 43, 87, 109, 2, 23, 43, 87, 109, 2, 23, 43, 86, 109, 2, 23, 43,
1087  86, 110, 2, 23, 44, 85, 110, 2, 23, 44, 84, 110, 2, 23, 44, 84, 110, 2, 23, 44, 83, 110,
1088  2, 24, 45, 83, 110, 2, 24, 45, 82, 110, 2, 24, 46, 81, 110, 2, 24, 46, 80, 111, 2, 25,
1089  47, 80, 111, 2, 25, 47, 79, 111, 2, 25, 48, 78, 111, 2, 26, 49, 77, 111, 2, 26, 50, 76,
1090  111, 2, 27, 51, 75, 111, 2, 27, 52, 74, 111, 2, 27, 53, 73, 111, 2, 28, 55, 71, 111, 2,
1091  29, 57, 69, 111, 2, 29, 61, 64, 111, 1, 30, 111, 1, 30, 111, 1, 31, 111, 1, 32, 111, 1,
1092  33, 111, 1, 34, 111, 1, 34, 111, 1, 35, 111, 1, 36, 111, 2, 37, 89, 90, 110, 2, 38, 88,
1093  90, 110, 2, 40, 86, 90, 110, 2, 41, 85, 89, 110, 2, 42, 83, 89, 110, 2, 44, 82, 89, 110,
1094  2, 46, 80, 88, 109, 2, 48, 78, 88, 109, 2, 50, 76, 87, 109, 2, 53, 73, 87, 109, 2, 57,
1095  68, 86, 108, 1, 86, 108, 1, 85, 108, 1, 85, 107, 1, 84, 107, 1, 83, 107, 1, 82, 106, 1,
1096  82, 106, 1, 81, 105, 1, 80, 105, 1, 79, 104, 1, 78, 104, 1, 77, 103, 1, 76, 103, 1, 75,
1097  102, 1, 73, 101, 1, 72, 101, 1, 70, 100, 1, 69, 99, 1, 67, 98, 1, 65, 98, 1, 63, 97,
1098  2, 28, 37, 60, 96, 2, 27, 40, 57, 95, 2, 26, 43, 52, 94, 1, 25, 93, 1, 24, 92, 1,
1099  24, 91, 1, 23, 90, 1, 23, 89, 1, 23, 87, 1, 23, 86, 1, 23, 85, 1, 23, 83, 1, 23,
1100  82, 1, 24, 80, 1, 24, 78, 1, 25, 77, 1, 25, 75, 1, 26, 73, 1, 28, 70, 1, 29, 68,
1101  1, 31, 65, 1, 34, 61, 1, 38, 56, 58, 68, 161, 1, 56, 68, 1, 54, 71, 1, 52, 72, 1,
1102  51, 73, 1, 50, 74, 1, 49, 75, 1, 49, 76, 1, 48, 76, 1, 48, 77, 1, 47, 77, 1, 47,
1103  77, 1, 47, 77, 1, 47, 77, 1, 47, 77, 1, 47, 77, 1, 47, 77, 1, 47, 77, 1, 48, 77,
1104  1, 48, 76, 1, 49, 76, 1, 49, 75, 1, 50, 74, 1, 51, 73, 1, 52, 72, 1, 54, 71, 1,
1105  56, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1106  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 57,
1107  67, 1, 55, 70, 1, 53, 72, 1, 51, 73, 1, 50, 74, 1, 50, 75, 1, 49, 76, 1, 48, 76,
1108  1, 48, 77, 1, 48, 77, 1, 47, 77, 1, 47, 77, 1, 47, 77, 1, 47, 78, 1, 47, 77, 1,
1109  47, 77, 1, 47, 77, 1, 48, 77, 1, 48, 77, 1, 49, 76, 1, 49, 75, 1, 50, 75, 1, 51,
1110  74, 1, 52, 73, 1, 53, 71, 1, 55, 69, 1, 59, 66, 59, 68, 179, 1, 67, 76, 1, 64, 79,
1111  1, 62, 81, 1, 61, 82, 1, 60, 83, 1, 59, 84, 1, 58, 85, 1, 58, 85, 1, 57, 86, 1,
1112  57, 86, 1, 57, 86, 1, 57, 87, 1, 56, 87, 1, 56, 87, 1, 56, 87, 1, 57, 87, 1, 57,
1113  86, 1, 57, 86, 1, 57, 86, 1, 58, 85, 1, 58, 85, 1, 59, 84, 1, 60, 83, 1, 61, 82,
1114  1, 62, 81, 1, 64, 79, 1, 67, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 55,
1116  81, 1, 55, 80, 1, 54, 80, 1, 54, 79, 1, 54, 78, 1, 54, 78, 1, 53, 77, 1, 53, 76,
1117  1, 53, 76, 1, 52, 75, 1, 52, 75, 1, 52, 74, 1, 51, 73, 1, 51, 73, 1, 51, 72, 1,
1118  50, 71, 1, 50, 71, 1, 50, 70, 1, 49, 70, 1, 49, 69, 1, 49, 68, 1, 49, 68, 1, 48,
1119  67, 1, 48, 67, 1, 48, 66, 1, 47, 65, 1, 47, 65, 1, 47, 64, 1, 46, 63, 1, 46, 63,
1120  1, 46, 62, 1, 45, 62, 1, 45, 61, 1, 45, 60, 1, 44, 60, 1, 44, 59, 1, 44, 59, 1,
1121  44, 58, 1, 43, 57, 1, 43, 57, 1, 43, 56, 1, 42, 55, 1, 42, 55, 1, 42, 54, 1, 41,
1122  54, 1, 41, 53, 1, 41, 52, 1, 42, 52, 1, 42, 51, 1, 43, 50, 1, 46, 48, 60, 42, 157,
1123  1, 103, 107, 1, 100, 109, 1, 98, 111, 1, 96, 112, 1, 94, 113, 1, 92, 113, 1, 90, 114, 1,
1124  89, 114, 1, 87, 115, 1, 85, 115, 1, 83, 115, 1, 81, 115, 1, 80, 115, 1, 78, 114, 1, 76,
1125  114, 1, 74, 113, 1, 72, 113, 1, 71, 112, 1, 69, 111, 1, 67, 109, 1, 65, 107, 1, 63, 106,
1126  1, 62, 104, 1, 60, 102, 1, 58, 100, 1, 56, 99, 1, 54, 97, 1, 53, 95, 1, 51, 93, 1,
1127  49, 91, 1, 47, 90, 1, 45, 88, 1, 44, 86, 1, 42, 84, 1, 40, 82, 1, 38, 80, 1, 36,
1128  79, 1, 35, 77, 1, 33, 75, 1, 31, 73, 1, 29, 71, 1, 27, 70, 1, 26, 68, 1, 24, 66,
1129  1, 22, 64, 1, 20, 62, 1, 18, 61, 1, 17, 59, 1, 15, 57, 1, 13, 55, 1, 11, 53, 1,
1130  9, 52, 1, 8, 50, 1, 6, 48, 1, 4, 46, 1, 2, 44, 1, 0, 43, 1, 0, 41, 1, 1,
1131  43, 1, 2, 45, 1, 4, 46, 1, 6, 48, 1, 8, 50, 1, 10, 52, 1, 11, 54, 1, 13, 55,
1132  1, 15, 57, 1, 17, 59, 1, 19, 61, 1, 20, 63, 1, 22, 64, 1, 24, 66, 1, 26, 68, 1,
1133  28, 70, 1, 29, 72, 1, 31, 73, 1, 33, 75, 1, 35, 77, 1, 37, 79, 1, 38, 81, 1, 40,
1134  82, 1, 42, 84, 1, 44, 86, 1, 46, 88, 1, 47, 90, 1, 49, 91, 1, 51, 93, 1, 53, 95,
1135  1, 55, 97, 1, 56, 99, 1, 58, 100, 1, 60, 102, 1, 62, 104, 1, 64, 106, 1, 65, 108, 1,
1136  67, 109, 1, 69, 111, 1, 71, 112, 1, 73, 113, 1, 74, 113, 1, 76, 114, 1, 78, 114, 1, 80,
1137  115, 1, 82, 115, 1, 83, 115, 1, 85, 115, 1, 87, 115, 1, 89, 114, 1, 90, 114, 1, 92, 113,
1138  1, 94, 113, 1, 96, 112, 1, 98, 111, 1, 100, 109, 1, 103, 107, 61, 70, 129, 1, 15, 109, 1,
1139  11, 113, 1, 9, 115, 1, 8, 116, 1, 7, 117, 1, 7, 118, 1, 6, 118, 1, 6, 119, 1, 5,
1140  119, 1, 5, 119, 1, 5, 119, 1, 5, 119, 1, 5, 119, 1, 6, 119, 1, 6, 118, 1, 7, 118,
1141  1, 7, 117, 1, 8, 116, 1, 10, 115, 1, 12, 113, 1, 18, 107, 0, 0, 0, 0, 0, 0, 0,
1142  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 18, 107, 1, 12, 113, 1, 10, 115, 1, 8, 116,
1143  1, 7, 117, 1, 7, 118, 1, 6, 118, 1, 6, 119, 1, 5, 119, 1, 5, 119, 1, 5, 119, 1,
1144  5, 119, 1, 5, 119, 1, 6, 119, 1, 6, 118, 1, 7, 118, 1, 7, 117, 1, 8, 116, 1, 9,
1145  115, 1, 11, 113, 1, 15, 109, 62, 42, 157, 1, 17, 21, 1, 15, 24, 1, 14, 27, 1, 12, 29,
1146  1, 12, 30, 1, 11, 32, 1, 10, 34, 1, 10, 36, 1, 10, 38, 1, 10, 39, 1, 10, 41, 1,
1147  10, 43, 1, 10, 45, 1, 10, 47, 1, 10, 48, 1, 11, 50, 1, 12, 52, 1, 13, 54, 1, 14,
1148  56, 1, 15, 57, 1, 17, 59, 1, 19, 61, 1, 20, 63, 1, 22, 65, 1, 24, 66, 1, 26, 68,
1149  1, 28, 70, 1, 29, 72, 1, 31, 74, 1, 33, 75, 1, 35, 77, 1, 37, 79, 1, 38, 81, 1,
1150  40, 83, 1, 42, 84, 1, 44, 86, 1, 46, 88, 1, 47, 90, 1, 49, 92, 1, 51, 93, 1, 53,
1151  95, 1, 55, 97, 1, 57, 99, 1, 58, 101, 1, 60, 102, 1, 62, 104, 1, 64, 106, 1, 66, 108,
1152  1, 67, 110, 1, 69, 111, 1, 71, 113, 1, 73, 115, 1, 75, 117, 1, 76, 119, 1, 78, 120, 1,
1153  80, 122, 1, 82, 124, 1, 83, 126, 1, 82, 124, 1, 80, 122, 1, 78, 120, 1, 76, 118, 1, 74,
1154  117, 1, 73, 115, 1, 71, 113, 1, 69, 111, 1, 67, 109, 1, 65, 108, 1, 64, 106, 1, 62, 104,
1155  1, 60, 102, 1, 58, 100, 1, 56, 99, 1, 55, 97, 1, 53, 95, 1, 51, 93, 1, 49, 91, 1,
1156  47, 90, 1, 46, 88, 1, 44, 86, 1, 42, 84, 1, 40, 82, 1, 38, 81, 1, 37, 79, 1, 35,
1157  77, 1, 33, 75, 1, 31, 73, 1, 29, 72, 1, 28, 70, 1, 26, 68, 1, 24, 66, 1, 22, 64,
1158  1, 20, 63, 1, 18, 61, 1, 17, 59, 1, 15, 57, 1, 14, 55, 1, 12, 54, 1, 12, 52, 1,
1159  11, 50, 1, 10, 48, 1, 10, 46, 1, 10, 45, 1, 10, 43, 1, 10, 41, 1, 10, 39, 1, 10,
1160  37, 1, 10, 36, 1, 10, 34, 1, 11, 32, 1, 12, 30, 1, 12, 28, 1, 14, 27, 1, 15, 24,
1161  1, 17, 21, 63, 34, 160, 1, 60, 67, 1, 52, 75, 1, 47, 79, 1, 43, 82, 1, 40, 84, 1,
1162  38, 86, 1, 35, 88, 1, 33, 90, 1, 30, 91, 1, 28, 92, 1, 26, 94, 1, 24, 95, 1, 22,
1163  96, 1, 22, 97, 1, 22, 98, 1, 22, 98, 1, 22, 99, 1, 22, 100, 1, 22, 101, 1, 22, 101,
1164  1, 22, 102, 2, 22, 55, 72, 102, 2, 22, 51, 75, 103, 2, 22, 47, 77, 103, 2, 22, 45, 79,
1165  104, 2, 22, 43, 80, 104, 2, 22, 42, 81, 104, 2, 22, 42, 82, 105, 2, 22, 42, 83, 105, 2,
1166  22, 42, 83, 105, 2, 22, 42, 84, 105, 2, 22, 42, 85, 106, 2, 22, 42, 85, 106, 2, 23, 42,
1167  85, 106, 2, 23, 42, 86, 106, 2, 23, 41, 86, 106, 2, 23, 41, 86, 106, 2, 24, 41, 86, 106,
1168  2, 24, 40, 86, 106, 2, 25, 39, 86, 106, 2, 27, 38, 86, 106, 2, 29, 36, 85, 106, 1, 85,
1169  106, 1, 85, 106, 1, 84, 106, 1, 84, 106, 1, 83, 106, 1, 82, 105, 1, 81, 105, 1, 80, 105,
1170  1, 78, 104, 1, 77, 104, 1, 75, 104, 1, 73, 103, 1, 71, 103, 1, 69, 102, 1, 67, 101, 1,
1171  65, 101, 1, 62, 100, 1, 60, 99, 1, 57, 98, 1, 55, 97, 1, 52, 96, 1, 52, 95, 1, 52,
1172  94, 1, 52, 92, 1, 52, 91, 1, 52, 90, 1, 52, 88, 1, 52, 86, 1, 52, 84, 1, 52, 83,
1173  1, 52, 81, 1, 52, 79, 1, 52, 77, 1, 52, 74, 1, 52, 72, 1, 52, 72, 1, 53, 72, 1,
1174  53, 72, 1, 53, 72, 1, 53, 71, 1, 54, 71, 1, 54, 70, 1, 55, 69, 1, 56, 68, 1, 58,
1175  67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 58, 67,
1176  1, 54, 71, 1, 52, 73, 1, 51, 74, 1, 50, 75, 1, 49, 75, 1, 49, 76, 1, 48, 76, 1,
1177  48, 77, 1, 48, 77, 1, 48, 77, 1, 48, 77, 1, 48, 77, 1, 48, 76, 1, 49, 76, 1, 49,
1178  75, 1, 50, 75, 1, 51, 74, 1, 52, 73, 1, 53, 71, 1, 56, 68, 64, 26, 174, 1, 56, 68,
1179  1, 51, 73, 1, 48, 76, 1, 46, 79, 1, 44, 80, 1, 42, 82, 1, 41, 83, 1, 39, 85, 1,
1180  38, 86, 1, 37, 87, 1, 36, 88, 1, 35, 89, 1, 34, 90, 1, 33, 90, 1, 33, 91, 2, 32,
1181  58, 68, 92, 2, 31, 55, 71, 92, 2, 30, 52, 73, 93, 2, 30, 51, 74, 93, 2, 29, 49, 76,
1182  94, 2, 29, 48, 77, 94, 2, 28, 47, 78, 95, 2, 27, 46, 78, 95, 2, 27, 45, 79, 95, 2,
1183  26, 44, 80, 96, 2, 26, 43, 80, 96, 2, 25, 43, 81, 96, 2, 25, 42, 81, 97, 2, 24, 41,
1184  82, 97, 2, 24, 41, 82, 97, 2, 24, 40, 82, 97, 2, 23, 40, 82, 97, 2, 23, 39, 82, 98,
1185  2, 23, 39, 83, 98, 2, 22, 39, 83, 98, 2, 22, 38, 83, 98, 2, 22, 38, 83, 98, 2, 21,
1186  37, 83, 98, 2, 21, 37, 83, 98, 2, 21, 37, 83, 98, 2, 21, 37, 83, 98, 2, 21, 36, 83,
1187  98, 2, 20, 36, 83, 98, 2, 20, 36, 78, 98, 2, 20, 36, 73, 98, 2, 20, 35, 69, 98, 2,
1188  20, 35, 67, 98, 2, 20, 35, 65, 98, 2, 20, 35, 63, 98, 2, 20, 35, 61, 98, 2, 19, 35,
1189  60, 98, 2, 19, 34, 59, 98, 2, 19, 34, 57, 98, 2, 19, 34, 56, 98, 2, 19, 34, 55, 98,
1190  2, 19, 34, 54, 98, 2, 19, 34, 54, 98, 2, 19, 34, 53, 98, 3, 19, 34, 52, 80, 83, 98,
1191  3, 19, 34, 51, 76, 83, 98, 3, 19, 34, 51, 73, 83, 98, 3, 19, 34, 50, 71, 83, 98, 3,
1192  19, 34, 50, 69, 83, 98, 3, 19, 34, 49, 68, 83, 98, 3, 19, 34, 49, 67, 83, 98, 3, 19,
1193  34, 48, 66, 83, 98, 3, 19, 34, 48, 65, 83, 98, 3, 19, 34, 48, 64, 83, 98, 3, 19, 34,
1194  47, 63, 83, 98, 3, 19, 34, 47, 63, 83, 98, 3, 19, 34, 47, 62, 83, 98, 3, 19, 34, 47,
1195  62, 83, 98, 3, 19, 34, 47, 62, 83, 98, 3, 19, 34, 47, 61, 83, 98, 3, 19, 34, 46, 61,
1196  83, 98, 3, 19, 34, 46, 61, 83, 98, 3, 19, 34, 46, 61, 83, 98, 3, 19, 34, 47, 61, 83,
1197  98, 3, 19, 34, 47, 62, 83, 98, 3, 19, 34, 47, 62, 83, 98, 3, 19, 34, 47, 62, 83, 98,
1198  3, 19, 34, 47, 63, 83, 98, 3, 19, 34, 47, 63, 83, 98, 3, 19, 34, 48, 64, 83, 98, 3,
1199  19, 34, 48, 65, 83, 98, 3, 19, 34, 48, 66, 83, 98, 3, 19, 34, 49, 67, 83, 98, 3, 19,
1200  34, 49, 69, 83, 98, 3, 19, 34, 50, 71, 83, 98, 3, 19, 34, 50, 74, 83, 98, 2, 19, 34,
1201  51, 98, 2, 19, 34, 51, 99, 2, 19, 34, 52, 100, 2, 19, 34, 53, 101, 2, 19, 34, 54, 102,
1202  2, 19, 34, 55, 102, 2, 19, 34, 55, 102, 2, 19, 35, 57, 102, 2, 20, 35, 58, 102, 2, 20,
1203  35, 59, 102, 2, 20, 35, 60, 101, 2, 20, 35, 62, 101, 2, 20, 35, 64, 100, 2, 20, 36, 67,
1204  99, 3, 20, 36, 70, 82, 83, 97, 1, 21, 36, 1, 21, 36, 1, 21, 36, 1, 21, 37, 1, 22,
1205  37, 1, 22, 37, 1, 22, 38, 1, 22, 38, 1, 23, 38, 1, 23, 39, 1, 23, 39, 1, 24, 40,
1206  1, 24, 40, 1, 24, 41, 1, 25, 41, 1, 25, 42, 1, 25, 43, 1, 26, 43, 1, 26, 44, 2,
1207  27, 44, 87, 92, 2, 27, 45, 85, 93, 2, 28, 46, 84, 94, 2, 28, 47, 82, 95, 2, 29, 48,
1208  81, 96, 2, 29, 50, 80, 96, 2, 30, 51, 77, 96, 2, 31, 54, 75, 96, 2, 31, 57, 71, 96,
1209  1, 32, 96, 1, 33, 96, 1, 34, 95, 1, 35, 95, 1, 36, 94, 1, 37, 93, 1, 38, 92, 1,
1210  39, 91, 1, 40, 89, 1, 42, 87, 1, 43, 86, 1, 45, 84, 1, 48, 80, 1, 50, 77, 1, 55,
1211  71, 65, 37, 157, 1, 25, 73, 1, 22, 74, 1, 20, 74, 1, 19, 74, 1, 18, 75, 1, 17, 75,
1212  1, 17, 76, 1, 16, 76, 1, 16, 77, 1, 16, 77, 1, 16, 77, 1, 16, 78, 1, 16, 78, 1,
1213  16, 79, 1, 17, 79, 1, 17, 79, 1, 18, 80, 1, 19, 80, 1, 20, 81, 1, 22, 81, 1, 27,
1214  81, 1, 42, 82, 1, 42, 82, 1, 41, 83, 1, 41, 83, 1, 41, 83, 1, 40, 84, 1, 40, 84,
1215  2, 39, 62, 63, 85, 2, 39, 61, 63, 85, 2, 39, 61, 63, 85, 2, 38, 60, 64, 86, 2, 38,
1216  60, 64, 86, 2, 37, 60, 65, 87, 2, 37, 59, 65, 87, 2, 37, 59, 66, 87, 2, 36, 58, 66,
1217  88, 2, 36, 58, 66, 88, 2, 35, 57, 67, 89, 2, 35, 57, 67, 89, 2, 35, 57, 68, 89, 2,
1218  34, 56, 68, 90, 2, 34, 56, 68, 90, 2, 33, 55, 69, 91, 2, 33, 55, 69, 91, 2, 33, 55,
1219  70, 92, 2, 32, 54, 70, 92, 2, 32, 54, 70, 92, 2, 31, 53, 71, 93, 2, 31, 53, 71, 93,
1220  2, 31, 53, 72, 94, 2, 30, 52, 72, 94, 2, 30, 52, 72, 94, 2, 29, 51, 73, 95, 2, 29,
1221  51, 73, 95, 2, 29, 51, 74, 96, 2, 28, 50, 74, 96, 2, 28, 50, 74, 96, 2, 27, 49, 75,
1222  97, 2, 27, 49, 75, 97, 2, 27, 48, 76, 98, 2, 26, 48, 76, 98, 2, 26, 48, 76, 98, 2,
1223  25, 47, 77, 99, 2, 25, 47, 77, 99, 2, 25, 46, 78, 100, 2, 24, 46, 78, 100, 1, 24, 100,
1224  1, 23, 101, 1, 23, 101, 1, 23, 102, 1, 22, 102, 1, 22, 102, 1, 21, 103, 1, 21, 103, 1,
1225  21, 104, 1, 20, 104, 1, 20, 104, 1, 19, 105, 1, 19, 105, 1, 19, 106, 1, 18, 106, 1, 18,
1226  106, 1, 17, 107, 1, 17, 107, 1, 17, 108, 1, 16, 108, 1, 16, 109, 2, 15, 37, 87, 109, 2,
1227  15, 37, 88, 109, 2, 15, 36, 88, 110, 2, 14, 36, 88, 110, 2, 14, 36, 89, 111, 2, 13, 35,
1228  89, 111, 2, 13, 35, 90, 111, 2, 13, 34, 90, 112, 2, 12, 34, 90, 112, 2, 12, 34, 91, 113,
1229  2, 11, 33, 91, 113, 2, 11, 33, 92, 113, 2, 5, 43, 81, 120, 2, 2, 46, 78, 123, 2, 0,
1230  48, 77, 124, 2, 0, 49, 76, 125, 2, 0, 50, 75, 126, 2, 0, 50, 74, 126, 2, 0, 51, 74,
1231  127, 2, 0, 51, 74, 127, 2, 0, 51, 73, 127, 2, 0, 51, 73, 127, 2, 0, 51, 73, 128, 2,
1232  0, 51, 73, 127, 2, 0, 51, 73, 127, 2, 0, 51, 74, 127, 2, 0, 50, 74, 127, 2, 0, 50,
1233  75, 126, 2, 0, 49, 75, 125, 2, 0, 48, 76, 124, 2, 1, 47, 78, 123, 2, 4, 44, 80, 120,
1234  66, 37, 157, 1, 13, 73, 1, 10, 80, 1, 8, 84, 1, 7, 86, 1, 6, 89, 1, 5, 91, 1,
1235  5, 92, 1, 4, 94, 1, 4, 95, 1, 4, 97, 1, 4, 98, 1, 4, 99, 1, 4, 100, 1, 4,
1236  101, 1, 5, 101, 1, 5, 102, 1, 6, 103, 1, 7, 104, 1, 8, 104, 1, 10, 105, 1, 15, 105,
1237  2, 21, 41, 76, 106, 2, 21, 41, 79, 106, 2, 21, 41, 82, 107, 2, 21, 41, 83, 107, 2, 21,
1238  41, 84, 107, 2, 21, 41, 85, 108, 2, 21, 41, 86, 108, 2, 21, 41, 87, 108, 2, 21, 41, 87,
1239  108, 2, 21, 41, 88, 108, 2, 21, 41, 88, 108, 2, 21, 41, 88, 109, 2, 21, 41, 88, 109, 2,
1240  21, 41, 88, 109, 2, 21, 41, 88, 109, 2, 21, 41, 88, 109, 2, 21, 41, 88, 108, 2, 21, 41,
1241  88, 108, 2, 21, 41, 87, 108, 2, 21, 41, 86, 108, 2, 21, 41, 86, 108, 2, 21, 41, 85, 108,
1242  2, 21, 41, 84, 107, 2, 21, 41, 82, 107, 2, 21, 41, 81, 107, 2, 21, 41, 79, 106, 2, 21,
1243  41, 77, 106, 2, 21, 41, 74, 105, 2, 21, 41, 70, 105, 1, 21, 104, 1, 21, 104, 1, 21, 103,
1244  1, 21, 102, 1, 21, 101, 1, 21, 100, 1, 21, 99, 1, 21, 99, 1, 21, 100, 1, 21, 101, 1,
1245  21, 103, 1, 21, 104, 1, 21, 105, 1, 21, 106, 1, 21, 107, 1, 21, 108, 1, 21, 109, 1, 21,
1246  110, 1, 21, 111, 1, 21, 112, 2, 21, 41, 70, 112, 2, 21, 41, 78, 113, 2, 21, 41, 82, 113,
1247  2, 21, 41, 85, 114, 2, 21, 41, 87, 115, 2, 21, 41, 88, 115, 2, 21, 41, 90, 115, 2, 21,
1248  41, 91, 116, 2, 21, 41, 92, 116, 2, 21, 41, 93, 116, 2, 21, 41, 94, 117, 2, 21, 41, 95,
1249  117, 2, 21, 41, 95, 117, 2, 21, 41, 96, 117, 2, 21, 41, 96, 117, 2, 21, 41, 97, 117, 2,
1250  21, 41, 97, 117, 2, 21, 41, 97, 117, 2, 21, 41, 97, 118, 2, 21, 41, 97, 117, 2, 21, 41,
1251  97, 117, 2, 21, 41, 97, 117, 2, 21, 41, 96, 117, 2, 21, 41, 96, 117, 2, 21, 41, 95, 117,
1252  2, 21, 41, 94, 117, 2, 21, 41, 93, 117, 2, 21, 41, 91, 116, 2, 21, 41, 88, 116, 2, 21,
1253  41, 83, 116, 1, 12, 115, 1, 9, 115, 1, 8, 114, 1, 6, 114, 1, 6, 113, 1, 5, 112, 1,
1254  5, 112, 1, 4, 111, 1, 4, 110, 1, 4, 109, 1, 4, 108, 1, 4, 107, 1, 4, 105, 1, 5,
1255  104, 1, 5, 102, 1, 5, 100, 1, 6, 98, 1, 7, 96, 1, 9, 92, 1, 11, 88, 67, 34, 160,
1256  1, 59, 67, 1, 52, 76, 1, 48, 80, 2, 45, 83, 101, 105, 2, 42, 86, 98, 108, 2, 40, 88,
1257  97, 109, 2, 38, 90, 96, 110, 2, 36, 92, 95, 111, 1, 34, 111, 1, 33, 112, 1, 31, 112, 1,
1258  30, 112, 1, 28, 113, 1, 27, 113, 1, 26, 113, 1, 25, 113, 1, 24, 113, 1, 23, 113, 1, 22,
1259  113, 1, 21, 113, 1, 21, 113, 2, 20, 56, 72, 113, 2, 19, 52, 76, 113, 2, 18, 49, 79, 113,
1260  2, 18, 47, 82, 113, 2, 17, 46, 84, 113, 2, 16, 44, 85, 113, 2, 16, 43, 87, 113, 2, 15,
1261  41, 88, 113, 2, 15, 40, 89, 113, 2, 14, 39, 90, 113, 2, 14, 38, 91, 113, 2, 13, 37, 91,
1262  113, 2, 13, 37, 92, 113, 2, 12, 36, 92, 113, 2, 12, 35, 92, 113, 2, 12, 34, 93, 113, 2,
1263  11, 34, 93, 113, 2, 11, 33, 93, 112, 2, 11, 33, 93, 112, 2, 10, 32, 94, 112, 2, 10, 31,
1264  94, 112, 2, 10, 31, 94, 111, 2, 9, 31, 95, 111, 2, 9, 30, 96, 110, 2, 9, 30, 97, 109,
1265  2, 9, 30, 98, 107, 2, 9, 29, 102, 104, 1, 8, 29, 1, 8, 29, 1, 8, 29, 1, 8, 28,
1266  1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1,
1267  8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8,
1268  28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28,
1269  1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 29, 1, 8, 29, 1, 8, 29, 1,
1270  9, 29, 1, 9, 30, 1, 9, 30, 1, 9, 30, 1, 9, 31, 1, 10, 31, 1, 10, 32, 1, 10,
1271  32, 1, 11, 33, 1, 11, 34, 2, 12, 34, 103, 109, 2, 12, 35, 101, 111, 2, 12, 36, 99, 113,
1272  2, 13, 37, 98, 114, 2, 13, 38, 97, 114, 2, 14, 39, 96, 115, 2, 14, 40, 95, 115, 2, 15,
1273  42, 94, 116, 2, 16, 43, 93, 116, 2, 16, 45, 91, 116, 2, 17, 47, 90, 116, 2, 18, 49, 88,
1274  116, 2, 18, 51, 85, 116, 2, 19, 56, 82, 115, 2, 20, 62, 76, 115, 1, 21, 114, 1, 22, 114,
1275  1, 22, 113, 1, 23, 112, 1, 24, 111, 1, 25, 110, 1, 27, 109, 1, 28, 108, 1, 29, 107, 1,
1276  30, 106, 1, 32, 104, 1, 34, 103, 1, 35, 101, 1, 37, 99, 1, 40, 97, 1, 42, 95, 1, 45,
1277  92, 1, 48, 89, 1, 52, 84, 1, 58, 79, 68, 37, 157, 1, 14, 64, 1, 10, 71, 1, 8, 75,
1278  1, 7, 78, 1, 6, 81, 1, 5, 83, 1, 5, 85, 1, 5, 87, 1, 4, 89, 1, 4, 90, 1,
1279  4, 92, 1, 4, 93, 1, 4, 94, 1, 5, 95, 1, 5, 96, 1, 6, 97, 1, 6, 98, 1, 7,
1280  98, 1, 8, 99, 1, 10, 100, 1, 15, 101, 2, 17, 37, 67, 101, 2, 17, 37, 71, 102, 2, 17,
1281  37, 74, 103, 2, 17, 37, 76, 103, 2, 17, 37, 77, 104, 2, 17, 37, 79, 105, 2, 17, 37, 80,
1282  105, 2, 17, 37, 81, 106, 2, 17, 37, 82, 106, 2, 17, 37, 83, 107, 2, 17, 37, 84, 107, 2,
1283  17, 37, 84, 108, 2, 17, 37, 85, 108, 2, 17, 37, 86, 109, 2, 17, 37, 87, 109, 2, 17, 37,
1284  87, 110, 2, 17, 37, 88, 110, 2, 17, 37, 88, 110, 2, 17, 37, 89, 111, 2, 17, 37, 89, 111,
1285  2, 17, 37, 90, 111, 2, 17, 37, 90, 112, 2, 17, 37, 91, 112, 2, 17, 37, 91, 112, 2, 17,
1286  37, 91, 112, 2, 17, 37, 92, 112, 2, 17, 37, 92, 113, 2, 17, 37, 92, 113, 2, 17, 37, 92,
1287  113, 2, 17, 37, 92, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2,
1288  17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37,
1289  93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113,
1290  2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17,
1291  37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93, 113, 2, 17, 37, 93,
1292  113, 2, 17, 37, 93, 113, 2, 17, 37, 92, 113, 2, 17, 37, 92, 113, 2, 17, 37, 92, 113, 2,
1293  17, 37, 92, 113, 2, 17, 37, 92, 112, 2, 17, 37, 91, 112, 2, 17, 37, 91, 112, 2, 17, 37,
1294  91, 112, 2, 17, 37, 90, 112, 2, 17, 37, 90, 111, 2, 17, 37, 90, 111, 2, 17, 37, 89, 111,
1295  2, 17, 37, 88, 111, 2, 17, 37, 88, 110, 2, 17, 37, 87, 110, 2, 17, 37, 86, 109, 2, 17,
1296  37, 85, 109, 2, 17, 37, 85, 109, 2, 17, 37, 84, 108, 2, 17, 37, 82, 108, 2, 17, 37, 81,
1297  107, 2, 17, 37, 80, 107, 2, 17, 37, 78, 106, 2, 17, 37, 77, 105, 2, 17, 37, 74, 105, 2,
1298  17, 37, 71, 104, 2, 17, 37, 66, 104, 1, 12, 103, 1, 9, 102, 1, 8, 101, 1, 7, 100, 1,
1299  6, 99, 1, 5, 98, 1, 5, 97, 1, 4, 96, 1, 4, 95, 1, 4, 94, 1, 4, 92, 1, 4,
1300  91, 1, 4, 89, 1, 5, 88, 1, 5, 86, 1, 6, 84, 1, 6, 82, 1, 7, 79, 1, 9, 75,
1301  1, 11, 69, 69, 37, 157, 1, 14, 109, 1, 10, 109, 1, 8, 109, 1, 7, 109, 1, 6, 109, 1,
1302  5, 109, 1, 5, 109, 1, 5, 109, 1, 4, 109, 1, 4, 109, 1, 4, 109, 1, 4, 109, 1, 4,
1303  109, 1, 5, 109, 1, 5, 109, 1, 6, 109, 1, 6, 109, 1, 7, 109, 1, 8, 109, 1, 10, 109,
1304  1, 16, 109, 2, 21, 41, 89, 109, 2, 21, 41, 89, 109, 2, 21, 41, 89, 109, 2, 21, 41, 89,
1305  109, 2, 21, 41, 89, 109, 2, 21, 41, 89, 109, 2, 21, 41, 89, 109, 2, 21, 41, 89, 109, 2,
1306  21, 41, 89, 109, 2, 21, 41, 89, 109, 2, 21, 41, 89, 109, 2, 21, 41, 89, 109, 2, 21, 41,
1307  89, 109, 2, 21, 41, 89, 109, 3, 21, 41, 66, 73, 89, 108, 3, 21, 41, 64, 75, 89, 108, 3,
1308  21, 41, 62, 76, 89, 108, 3, 21, 41, 62, 77, 90, 108, 3, 21, 41, 61, 78, 90, 107, 3, 21,
1309  41, 60, 78, 91, 107, 3, 21, 41, 60, 78, 91, 106, 3, 21, 41, 60, 79, 92, 105, 3, 21, 41,
1310  59, 79, 94, 104, 3, 21, 41, 59, 79, 97, 100, 2, 21, 41, 59, 79, 2, 21, 41, 59, 79, 2,
1311  21, 41, 59, 79, 2, 21, 41, 59, 79, 2, 21, 41, 59, 79, 1, 21, 79, 1, 21, 79, 1, 21,
1312  79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79,
1313  1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1, 21, 79, 1,
1314  21, 79, 1, 21, 79, 1, 21, 79, 2, 21, 41, 59, 79, 2, 21, 41, 59, 79, 2, 21, 41, 59,
1315  79, 2, 21, 41, 59, 79, 2, 21, 41, 59, 79, 3, 21, 41, 59, 79, 102, 104, 3, 21, 41, 59,
1316  79, 99, 108, 3, 21, 41, 60, 79, 97, 109, 3, 21, 41, 60, 79, 96, 110, 3, 21, 41, 60, 78,
1317  95, 111, 3, 21, 41, 61, 78, 95, 112, 3, 21, 41, 61, 77, 94, 112, 3, 21, 41, 62, 76, 94,
1318  113, 3, 21, 41, 63, 75, 94, 113, 3, 21, 41, 65, 73, 93, 113, 2, 21, 41, 93, 113, 2, 21,
1319  41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41, 93,
1320  113, 2, 21, 41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41, 93, 113, 2,
1321  21, 41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41, 93, 113, 2, 21, 41,
1322  93, 113, 1, 13, 113, 1, 9, 113, 1, 8, 113, 1, 7, 113, 1, 6, 113, 1, 5, 113, 1, 5,
1323  113, 1, 5, 113, 1, 4, 113, 1, 4, 113, 1, 4, 113, 1, 4, 113, 1, 5, 113, 1, 5, 113,
1324  1, 5, 113, 1, 6, 113, 1, 7, 113, 1, 7, 113, 1, 9, 113, 1, 11, 113, 70, 37, 157, 1,
1325  21, 120, 1, 17, 120, 1, 15, 120, 1, 14, 120, 1, 13, 120, 1, 12, 120, 1, 12, 120, 1, 12,
1326  120, 1, 11, 120, 1, 11, 120, 1, 11, 120, 1, 11, 120, 1, 11, 120, 1, 12, 120, 1, 12, 120,
1327  1, 13, 120, 1, 13, 120, 1, 14, 120, 1, 15, 120, 1, 17, 120, 1, 22, 120, 2, 28, 48, 100,
1328  120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120, 2,
1329  28, 48, 100, 120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120, 2, 28, 48,
1330  100, 120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120, 2, 28, 48, 100, 120,
1331  3, 28, 48, 73, 79, 100, 120, 3, 28, 48, 71, 82, 100, 120, 3, 28, 48, 69, 83, 101, 120, 3,
1332  28, 48, 69, 84, 101, 119, 3, 28, 48, 68, 84, 101, 119, 3, 28, 48, 67, 85, 102, 118, 3, 28,
1333  48, 67, 85, 103, 117, 3, 28, 48, 67, 86, 104, 116, 3, 28, 48, 66, 86, 105, 115, 3, 28, 48,
1334  66, 86, 108, 112, 2, 28, 48, 66, 86, 2, 28, 48, 66, 86, 2, 28, 48, 66, 86, 2, 28, 48,
1335  66, 86, 2, 28, 48, 66, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86,
1336  1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1,
1337  28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28, 86, 1, 28,
1338  86, 2, 28, 48, 66, 86, 2, 28, 48, 66, 86, 2, 28, 48, 66, 86, 2, 28, 48, 66, 86, 2,
1339  28, 48, 66, 86, 2, 28, 48, 66, 86, 2, 28, 48, 66, 86, 2, 28, 48, 67, 86, 2, 28, 48,
1340  67, 85, 2, 28, 48, 67, 85, 2, 28, 48, 67, 85, 2, 28, 48, 68, 84, 2, 28, 48, 69, 83,
1341  2, 28, 48, 70, 82, 2, 28, 48, 72, 80, 1, 28, 48, 1, 28, 48, 1, 28, 48, 1, 28, 48,
1342  1, 28, 48, 1, 28, 48, 1, 28, 48, 1, 28, 48, 1, 28, 48, 1, 28, 48, 1, 28, 48, 1,
1343  28, 48, 1, 28, 48, 1, 28, 48, 1, 28, 48, 1, 19, 74, 1, 16, 77, 1, 15, 79, 1, 14,
1344  80, 1, 13, 81, 1, 12, 81, 1, 12, 82, 1, 12, 82, 1, 11, 82, 1, 11, 82, 1, 11, 82,
1345  1, 11, 82, 1, 11, 82, 1, 12, 82, 1, 12, 82, 1, 13, 81, 1, 13, 80, 1, 14, 79, 1,
1346  16, 78, 1, 18, 75, 71, 34, 160, 1, 60, 70, 1, 53, 78, 1, 49, 83, 2, 45, 86, 102, 105,
1347  2, 43, 89, 99, 108, 2, 40, 92, 97, 109, 2, 38, 94, 96, 111, 1, 36, 111, 1, 35, 112, 1,
1348  33, 112, 1, 32, 112, 1, 30, 113, 1, 29, 113, 1, 28, 113, 1, 27, 113, 1, 26, 113, 1, 25,
1349  113, 1, 24, 113, 1, 23, 113, 1, 22, 113, 1, 21, 113, 2, 20, 56, 76, 113, 2, 20, 52, 80,
1350  113, 2, 19, 49, 83, 113, 2, 18, 47, 86, 113, 2, 17, 45, 88, 113, 2, 17, 44, 89, 113, 2,
1351  16, 42, 90, 113, 2, 16, 41, 91, 113, 2, 15, 40, 92, 113, 2, 14, 39, 92, 113, 2, 14, 38,
1352  93, 113, 2, 13, 37, 93, 113, 2, 13, 37, 93, 113, 2, 12, 36, 94, 113, 2, 12, 35, 94, 113,
1353  2, 12, 34, 94, 112, 2, 11, 34, 95, 112, 2, 11, 33, 95, 112, 2, 11, 33, 95, 111, 2, 10,
1354  32, 96, 110, 2, 10, 32, 97, 109, 2, 10, 31, 99, 107, 1, 9, 31, 1, 9, 30, 1, 9, 30,
1355  1, 9, 30, 1, 9, 29, 1, 8, 29, 1, 8, 29, 1, 8, 29, 1, 8, 29, 1, 8, 28, 1,
1356  8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8,
1357  28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 1, 8, 28, 2, 8, 28, 66, 114, 2,
1358  8, 28, 63, 117, 2, 8, 28, 62, 119, 2, 8, 28, 61, 119, 2, 8, 28, 60, 120, 2, 8, 28,
1359  60, 121, 2, 8, 28, 59, 121, 2, 8, 28, 59, 122, 2, 8, 28, 59, 122, 2, 8, 28, 59, 122,
1360  2, 8, 28, 59, 122, 2, 8, 28, 59, 122, 2, 8, 28, 59, 121, 2, 8, 28, 59, 121, 2, 8,
1361  29, 60, 121, 2, 8, 29, 60, 120, 2, 9, 29, 61, 119, 2, 9, 29, 62, 118, 2, 9, 30, 64,
1362  117, 2, 9, 30, 66, 115, 2, 9, 30, 93, 113, 2, 10, 31, 93, 113, 2, 10, 31, 93, 113, 2,
1363  10, 32, 93, 113, 2, 10, 32, 93, 113, 2, 11, 33, 93, 113, 2, 11, 33, 93, 113, 2, 12, 34,
1364  93, 113, 2, 12, 35, 93, 113, 2, 12, 36, 93, 113, 2, 13, 37, 93, 113, 2, 13, 37, 93, 113,
1365  2, 14, 39, 93, 113, 2, 14, 40, 93, 113, 2, 15, 42, 93, 113, 2, 15, 44, 91, 113, 2, 16,
1366  46, 88, 113, 2, 17, 49, 85, 113, 2, 17, 53, 81, 113, 2, 18, 59, 75, 113, 1, 19, 113, 1,
1367  19, 113, 1, 20, 113, 1, 21, 113, 1, 22, 113, 1, 23, 113, 1, 24, 113, 1, 25, 113, 1, 26,
1368  111, 1, 28, 109, 1, 29, 107, 1, 31, 105, 1, 33, 103, 1, 35, 101, 1, 37, 98, 1, 40, 96,
1369  1, 43, 93, 1, 47, 90, 1, 51, 85, 1, 58, 80, 72, 37, 157, 2, 19, 47, 77, 105, 2, 16,
1370  52, 73, 109, 2, 14, 54, 72, 111, 2, 13, 55, 70, 113, 2, 12, 56, 69, 114, 2, 11, 56, 69,
1371  114, 2, 11, 57, 68, 115, 2, 10, 57, 68, 115, 2, 10, 58, 68, 115, 2, 10, 58, 68, 115, 2,
1372  10, 58, 68, 115, 2, 10, 58, 68, 115, 2, 10, 58, 68, 115, 2, 10, 57, 68, 115, 2, 11, 57,
1373  68, 115, 2, 11, 56, 69, 114, 2, 12, 56, 70, 113, 2, 13, 55, 70, 112, 2, 14, 54, 72, 111,
1374  2, 16, 52, 74, 109, 2, 20, 46, 79, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21,
1375  41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84,
1376  105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2,
1377  21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41,
1378  84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105,
1379  2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21,
1380  41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84,
1381  105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105,
1382  1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1,
1383  21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 2, 21,
1384  41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84,
1385  105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2,
1386  21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41,
1387  84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105,
1388  2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21,
1389  41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84,
1390  105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 13, 49, 76, 112, 2, 10, 53, 73, 115, 2,
1391  9, 54, 71, 116, 2, 8, 55, 70, 117, 2, 7, 56, 69, 118, 2, 7, 57, 69, 118, 2, 6, 57,
1392  68, 119, 2, 6, 57, 68, 119, 2, 6, 58, 68, 119, 2, 6, 58, 68, 119, 2, 6, 58, 68, 119,
1393  2, 6, 58, 68, 119, 2, 6, 57, 68, 119, 2, 6, 57, 68, 119, 2, 7, 57, 69, 119, 2, 7,
1394  56, 69, 118, 2, 8, 55, 70, 117, 2, 9, 54, 71, 116, 2, 10, 53, 72, 115, 2, 13, 51, 75,
1395  112, 73, 37, 157, 1, 27, 96, 1, 24, 100, 1, 22, 102, 1, 21, 104, 1, 20, 104, 1, 19, 105,
1396  1, 19, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1,
1397  18, 106, 1, 19, 105, 1, 19, 105, 1, 20, 104, 1, 21, 103, 1, 22, 102, 1, 24, 100, 1, 29,
1398  95, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1399  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1400  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1401  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1402  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1403  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1404  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1405  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1406  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1407  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1408  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 26, 98, 1,
1409  23, 101, 1, 21, 103, 1, 20, 104, 1, 20, 105, 1, 19, 105, 1, 19, 106, 1, 18, 106, 1, 18,
1410  106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 18, 106, 1, 19, 105, 1, 19, 105,
1411  1, 20, 104, 1, 21, 103, 1, 23, 102, 1, 25, 99, 74, 37, 160, 1, 51, 115, 1, 48, 120, 1,
1412  46, 122, 1, 44, 123, 1, 44, 124, 1, 43, 124, 1, 43, 125, 1, 42, 125, 1, 42, 126, 1, 42,
1413  126, 1, 42, 126, 1, 42, 126, 1, 42, 126, 1, 42, 125, 1, 43, 125, 1, 43, 124, 1, 44, 124,
1414  1, 45, 123, 1, 46, 122, 1, 48, 120, 1, 53, 114, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1,
1415  80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80,
1416  100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100,
1417  1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1,
1418  80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80,
1419  100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100, 1, 80, 100,
1420  1, 80, 100, 1, 80, 100, 2, 19, 26, 80, 100, 2, 17, 28, 80, 100, 2, 16, 29, 80, 100, 2,
1421  15, 30, 80, 100, 2, 14, 31, 80, 100, 2, 13, 31, 80, 100, 2, 13, 31, 80, 100, 2, 13, 32,
1422  80, 100, 2, 13, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100,
1423  2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12,
1424  32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80,
1425  100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2, 12, 32, 80, 100, 2,
1426  12, 32, 79, 100, 2, 12, 32, 79, 100, 2, 12, 32, 78, 100, 2, 12, 32, 78, 99, 2, 12, 32,
1427  77, 99, 2, 12, 32, 77, 99, 2, 12, 32, 76, 99, 2, 12, 32, 75, 98, 2, 12, 33, 74, 98,
1428  2, 12, 35, 72, 98, 2, 12, 37, 71, 97, 2, 12, 40, 69, 97, 2, 12, 43, 67, 96, 2, 12,
1429  46, 64, 96, 2, 12, 51, 60, 95, 1, 12, 94, 1, 12, 94, 1, 12, 93, 1, 12, 92, 1, 12,
1430  91, 1, 12, 90, 1, 12, 89, 1, 14, 88, 1, 16, 87, 1, 18, 86, 1, 20, 85, 1, 22, 83,
1431  1, 25, 82, 1, 27, 80, 1, 30, 78, 1, 33, 76, 1, 36, 74, 1, 39, 71, 1, 43, 68, 1,
1432  47, 64, 75, 37, 157, 2, 13, 52, 81, 109, 2, 10, 56, 77, 113, 2, 8, 58, 75, 115, 2, 7,
1433  59, 74, 117, 2, 6, 60, 73, 117, 2, 5, 61, 73, 118, 2, 5, 61, 72, 118, 2, 4, 61, 72,
1434  119, 2, 4, 62, 72, 119, 2, 4, 62, 72, 119, 2, 4, 62, 71, 119, 2, 4, 62, 72, 119, 2,
1435  4, 62, 72, 119, 2, 4, 61, 72, 119, 2, 5, 61, 72, 118, 2, 5, 61, 73, 118, 2, 6, 60,
1436  73, 117, 2, 7, 59, 74, 116, 2, 8, 58, 76, 115, 2, 10, 56, 77, 113, 2, 15, 51, 76, 108,
1437  2, 21, 41, 75, 105, 2, 21, 41, 74, 104, 2, 21, 41, 73, 103, 2, 21, 41, 71, 102, 2, 21,
1438  41, 70, 101, 2, 21, 41, 69, 100, 2, 21, 41, 68, 99, 2, 21, 41, 67, 97, 2, 21, 41, 66,
1439  96, 2, 21, 41, 64, 95, 2, 21, 41, 63, 94, 2, 21, 41, 62, 93, 2, 21, 41, 61, 92, 2,
1440  21, 41, 60, 90, 2, 21, 41, 59, 89, 2, 21, 41, 57, 88, 2, 21, 41, 56, 87, 2, 21, 41,
1441  55, 86, 2, 21, 41, 54, 85, 2, 21, 41, 53, 84, 2, 21, 41, 52, 82, 2, 21, 41, 50, 81,
1442  2, 21, 41, 49, 80, 2, 21, 41, 48, 79, 2, 21, 41, 47, 78, 2, 21, 41, 46, 77, 2, 21,
1443  41, 45, 76, 2, 21, 41, 43, 74, 2, 21, 41, 42, 73, 1, 21, 72, 1, 21, 71, 1, 21, 70,
1444  1, 21, 72, 1, 21, 73, 1, 21, 75, 1, 21, 76, 1, 21, 77, 1, 21, 78, 1, 21, 79, 1,
1445  21, 80, 1, 21, 81, 1, 21, 82, 1, 21, 83, 1, 21, 84, 1, 21, 85, 1, 21, 86, 2, 21,
1446  53, 55, 87, 2, 21, 52, 57, 88, 2, 21, 50, 59, 89, 2, 21, 49, 60, 89, 2, 21, 48, 62,
1447  90, 2, 21, 47, 63, 91, 2, 21, 46, 64, 91, 2, 21, 44, 66, 92, 2, 21, 43, 67, 93, 2,
1448  21, 42, 68, 93, 2, 21, 41, 69, 94, 2, 21, 41, 70, 95, 2, 21, 41, 70, 95, 2, 21, 41,
1449  71, 96, 2, 21, 41, 72, 96, 2, 21, 41, 73, 97, 2, 21, 41, 73, 97, 2, 21, 41, 74, 98,
1450  2, 21, 41, 75, 98, 2, 21, 41, 75, 99, 2, 21, 41, 76, 99, 2, 21, 41, 77, 100, 2, 21,
1451  41, 77, 100, 2, 21, 41, 78, 101, 2, 21, 41, 78, 101, 2, 21, 41, 79, 102, 2, 21, 41, 79,
1452  102, 2, 21, 41, 80, 103, 2, 21, 41, 80, 103, 2, 21, 41, 81, 104, 2, 21, 41, 81, 104, 2,
1453  21, 41, 82, 104, 2, 21, 41, 82, 105, 2, 12, 54, 83, 116, 2, 9, 57, 83, 119, 2, 8, 58,
1454  84, 120, 2, 6, 59, 84, 121, 2, 6, 60, 85, 122, 2, 5, 61, 85, 123, 2, 5, 61, 86, 123,
1455  2, 4, 61, 86, 124, 2, 4, 62, 87, 124, 2, 4, 62, 87, 124, 2, 4, 62, 88, 124, 2, 4,
1456  62, 88, 124, 2, 4, 62, 89, 124, 2, 5, 61, 89, 123, 2, 5, 61, 89, 123, 2, 5, 60, 90,
1457  122, 2, 6, 60, 90, 122, 2, 7, 59, 91, 121, 2, 9, 57, 91, 119, 2, 11, 55, 92, 117, 76,
1458  37, 157, 1, 18, 69, 1, 14, 73, 1, 12, 75, 1, 11, 76, 1, 10, 77, 1, 9, 78, 1, 9,
1459  78, 1, 8, 79, 1, 8, 79, 1, 8, 79, 1, 8, 79, 1, 8, 79, 1, 8, 79, 1, 8, 79,
1460  1, 9, 78, 1, 9, 78, 1, 10, 77, 1, 11, 76, 1, 12, 75, 1, 14, 73, 1, 19, 68, 1,
1461  33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33,
1462  54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54,
1463  1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1,
1464  33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33,
1465  54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54,
1466  1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1, 33, 54, 1,
1467  33, 54, 1, 33, 54, 2, 33, 54, 105, 110, 2, 33, 54, 103, 112, 2, 33, 54, 101, 114, 2, 33,
1468  54, 100, 115, 2, 33, 54, 99, 116, 2, 33, 54, 99, 116, 2, 33, 54, 98, 117, 2, 33, 54, 98,
1469  117, 2, 33, 54, 98, 117, 2, 33, 54, 98, 117, 2, 33, 54, 98, 117, 2, 33, 54, 97, 117, 2,
1470  33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54,
1471  97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118,
1472  2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33,
1473  54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97,
1474  118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 2, 33, 54, 97, 118, 1, 16, 118, 1, 13, 118,
1475  1, 12, 118, 1, 10, 118, 1, 10, 118, 1, 9, 118, 1, 9, 118, 1, 8, 118, 1, 8, 118, 1,
1476  8, 118, 1, 8, 118, 1, 8, 118, 1, 8, 118, 1, 9, 118, 1, 9, 118, 1, 10, 118, 1, 10,
1477  118, 1, 11, 118, 1, 13, 118, 1, 15, 118, 77, 37, 157, 2, 9, 35, 90, 116, 2, 5, 36, 89,
1478  120, 2, 3, 36, 89, 122, 2, 2, 37, 88, 123, 2, 1, 37, 88, 124, 2, 1, 37, 87, 125, 2,
1479  0, 38, 87, 125, 2, 0, 38, 87, 125, 2, 0, 39, 86, 126, 2, 0, 39, 86, 126, 2, 0, 40,
1480  85, 126, 2, 0, 40, 85, 126, 2, 0, 41, 84, 126, 2, 0, 41, 84, 125, 2, 0, 42, 83, 125,
1481  2, 1, 42, 83, 124, 2, 1, 42, 83, 124, 2, 2, 43, 82, 123, 2, 4, 43, 82, 121, 2, 5,
1482  44, 81, 120, 2, 10, 44, 81, 116, 2, 10, 45, 80, 115, 2, 10, 45, 80, 115, 2, 10, 46, 80,
1483  115, 2, 10, 46, 79, 115, 2, 10, 47, 79, 115, 2, 10, 47, 78, 115, 2, 10, 47, 78, 115, 2,
1484  10, 48, 77, 115, 2, 10, 48, 77, 115, 2, 10, 49, 76, 115, 2, 10, 49, 76, 115, 2, 10, 50,
1485  76, 115, 2, 10, 50, 75, 115, 2, 10, 51, 75, 115, 2, 10, 51, 74, 115, 2, 10, 51, 74, 115,
1486  2, 10, 52, 73, 115, 2, 10, 52, 73, 115, 2, 10, 53, 72, 115, 4, 10, 30, 31, 53, 72, 94,
1487  95, 115, 4, 10, 30, 31, 54, 72, 94, 95, 115, 4, 10, 30, 32, 54, 71, 93, 95, 115, 4, 10,
1488  30, 32, 55, 71, 93, 95, 115, 4, 10, 30, 33, 55, 70, 93, 95, 115, 4, 10, 30, 33, 56, 70,
1489  92, 95, 115, 4, 10, 30, 34, 56, 69, 92, 95, 115, 4, 10, 30, 34, 56, 69, 91, 95, 115, 4,
1490  10, 30, 34, 57, 68, 91, 95, 115, 4, 10, 30, 35, 57, 68, 90, 95, 115, 4, 10, 30, 35, 58,
1491  68, 90, 95, 115, 4, 10, 30, 36, 58, 67, 89, 95, 115, 4, 10, 30, 36, 59, 67, 89, 95, 115,
1492  4, 10, 30, 37, 59, 66, 89, 95, 115, 4, 10, 30, 37, 60, 66, 88, 95, 115, 4, 10, 30, 38,
1493  60, 65, 88, 95, 115, 4, 10, 30, 38, 61, 65, 87, 95, 115, 4, 10, 30, 38, 61, 64, 87, 95,
1494  115, 4, 10, 30, 39, 61, 64, 86, 95, 115, 4, 10, 30, 39, 62, 64, 86, 95, 115, 4, 10, 30,
1495  40, 62, 63, 85, 95, 115, 3, 10, 30, 40, 85, 95, 115, 3, 10, 30, 41, 85, 95, 115, 3, 10,
1496  30, 41, 84, 95, 115, 3, 10, 30, 42, 84, 95, 115, 3, 10, 30, 42, 83, 95, 115, 3, 10, 30,
1497  43, 83, 95, 115, 3, 10, 30, 43, 82, 95, 115, 3, 10, 30, 43, 82, 95, 115, 3, 10, 30, 44,
1498  81, 95, 115, 3, 10, 30, 44, 81, 95, 115, 3, 10, 30, 45, 81, 95, 115, 3, 10, 30, 45, 80,
1499  95, 115, 3, 10, 30, 46, 80, 95, 115, 3, 10, 30, 46, 79, 95, 115, 3, 10, 30, 47, 79, 95,
1500  115, 3, 10, 30, 47, 78, 95, 115, 3, 10, 30, 48, 78, 95, 115, 3, 10, 30, 48, 77, 95, 115,
1501  3, 10, 30, 48, 77, 95, 115, 3, 10, 30, 49, 77, 95, 115, 3, 10, 30, 49, 76, 95, 115, 3,
1502  10, 30, 50, 76, 95, 115, 3, 10, 30, 50, 75, 95, 115, 3, 10, 30, 51, 75, 95, 115, 3, 10,
1503  30, 51, 74, 95, 115, 3, 10, 30, 52, 74, 95, 115, 3, 10, 30, 52, 73, 95, 115, 3, 10, 30,
1504  52, 73, 95, 115, 3, 10, 30, 53, 73, 95, 115, 3, 10, 30, 53, 72, 95, 115, 3, 10, 30, 54,
1505  72, 95, 115, 2, 10, 30, 95, 115, 2, 10, 30, 95, 115, 2, 10, 30, 95, 115, 2, 10, 30, 95,
1506  115, 2, 10, 30, 95, 115, 2, 10, 30, 95, 115, 2, 10, 30, 95, 115, 2, 10, 30, 95, 115, 2,
1507  5, 43, 82, 120, 2, 2, 46, 79, 123, 2, 1, 48, 77, 124, 2, 0, 49, 76, 125, 2, 0, 50,
1508  76, 126, 2, 0, 50, 75, 127, 2, 0, 51, 75, 127, 2, 0, 51, 74, 127, 2, 0, 51, 74, 127,
1509  2, 0, 51, 74, 128, 2, 0, 51, 74, 128, 2, 0, 51, 74, 128, 2, 0, 51, 74, 127, 2, 0,
1510  51, 74, 127, 2, 0, 50, 75, 127, 2, 0, 50, 75, 126, 2, 0, 49, 76, 125, 2, 1, 48, 77,
1511  124, 2, 2, 47, 79, 123, 2, 5, 44, 81, 120, 78, 37, 157, 2, 9, 37, 77, 111, 2, 5, 37,
1512  73, 115, 2, 4, 38, 72, 117, 2, 2, 39, 70, 119, 2, 1, 39, 69, 120, 2, 1, 40, 69, 120,
1513  2, 0, 41, 68, 121, 2, 0, 41, 68, 121, 2, 0, 42, 68, 121, 2, 0, 43, 68, 121, 2, 0,
1514  43, 68, 121, 2, 0, 44, 68, 121, 2, 0, 44, 68, 121, 2, 0, 45, 68, 121, 2, 0, 46, 68,
1515  121, 2, 1, 46, 69, 120, 2, 2, 47, 70, 119, 2, 3, 48, 71, 119, 2, 4, 48, 72, 117, 2,
1516  6, 49, 74, 115, 2, 11, 50, 79, 111, 2, 16, 50, 89, 109, 2, 16, 51, 89, 109, 2, 16, 51,
1517  89, 109, 2, 16, 52, 89, 109, 2, 16, 53, 89, 109, 2, 16, 53, 89, 109, 2, 16, 54, 89, 109,
1518  2, 16, 55, 89, 109, 2, 16, 55, 89, 109, 2, 16, 56, 89, 109, 2, 16, 57, 89, 109, 2, 16,
1519  57, 89, 109, 2, 16, 58, 89, 109, 2, 16, 58, 89, 109, 2, 16, 59, 89, 109, 2, 16, 60, 89,
1520  109, 2, 16, 60, 89, 109, 2, 16, 61, 89, 109, 2, 16, 62, 89, 109, 3, 16, 37, 38, 62, 89,
1521  109, 3, 16, 37, 39, 63, 89, 109, 3, 16, 37, 39, 64, 89, 109, 3, 16, 37, 40, 64, 89, 109,
1522  3, 16, 37, 40, 65, 89, 109, 3, 16, 37, 41, 65, 89, 109, 3, 16, 37, 42, 66, 89, 109, 3,
1523  16, 37, 42, 67, 89, 109, 3, 16, 37, 43, 67, 89, 109, 3, 16, 37, 44, 68, 89, 109, 3, 16,
1524  37, 44, 69, 89, 109, 3, 16, 37, 45, 69, 89, 109, 3, 16, 37, 46, 70, 89, 109, 3, 16, 37,
1525  46, 71, 89, 109, 3, 16, 37, 47, 71, 89, 109, 3, 16, 37, 47, 72, 89, 109, 3, 16, 37, 48,
1526  73, 89, 109, 3, 16, 37, 49, 73, 89, 109, 3, 16, 37, 49, 74, 89, 109, 3, 16, 37, 50, 74,
1527  89, 109, 3, 16, 37, 51, 75, 89, 109, 3, 16, 37, 51, 76, 89, 109, 3, 16, 37, 52, 76, 89,
1528  109, 3, 16, 37, 53, 77, 89, 109, 3, 16, 37, 53, 78, 89, 109, 3, 16, 37, 54, 78, 89, 109,
1529  3, 16, 37, 55, 79, 89, 109, 3, 16, 37, 55, 80, 89, 109, 3, 16, 37, 56, 80, 89, 109, 3,
1530  16, 37, 56, 81, 89, 109, 3, 16, 37, 57, 81, 89, 109, 3, 16, 37, 58, 82, 89, 109, 3, 16,
1531  37, 58, 83, 89, 109, 3, 16, 37, 59, 83, 89, 109, 3, 16, 37, 60, 84, 89, 109, 3, 16, 37,
1532  60, 85, 89, 109, 3, 16, 37, 61, 85, 89, 109, 3, 16, 37, 62, 86, 89, 109, 3, 16, 37, 62,
1533  87, 89, 109, 3, 16, 37, 63, 87, 89, 109, 3, 16, 37, 63, 88, 89, 109, 3, 16, 37, 64, 88,
1534  89, 109, 2, 16, 37, 65, 109, 2, 16, 37, 65, 109, 2, 16, 37, 66, 109, 2, 16, 37, 67, 109,
1535  2, 16, 37, 67, 109, 2, 16, 37, 68, 109, 2, 16, 37, 69, 109, 2, 16, 37, 69, 109, 2, 16,
1536  37, 70, 109, 2, 16, 37, 70, 109, 2, 16, 37, 71, 109, 2, 16, 37, 72, 109, 2, 16, 37, 72,
1537  109, 2, 16, 37, 73, 109, 2, 16, 37, 74, 109, 2, 16, 37, 74, 109, 2, 16, 37, 75, 109, 2,
1538  16, 37, 76, 109, 2, 12, 49, 76, 109, 2, 9, 52, 77, 109, 2, 7, 54, 78, 109, 2, 6, 55,
1539  78, 109, 2, 5, 56, 79, 109, 2, 5, 56, 79, 109, 2, 4, 57, 80, 109, 2, 4, 57, 81, 109,
1540  2, 4, 57, 81, 109, 2, 4, 58, 82, 109, 2, 4, 58, 83, 109, 2, 4, 57, 83, 109, 2, 4,
1541  57, 84, 109, 2, 4, 57, 85, 109, 2, 5, 57, 85, 109, 2, 5, 56, 86, 109, 2, 6, 55, 86,
1542  109, 2, 7, 54, 87, 109, 2, 8, 53, 88, 109, 2, 11, 50, 88, 109, 79, 34, 160, 1, 57, 68,
1543  1, 51, 74, 1, 47, 77, 1, 44, 80, 1, 42, 83, 1, 40, 85, 1, 38, 87, 1, 36, 89, 1,
1544  34, 90, 1, 33, 92, 1, 31, 93, 1, 30, 94, 1, 29, 96, 1, 27, 97, 1, 26, 98, 1, 25,
1545  99, 1, 24, 100, 1, 23, 101, 1, 22, 102, 1, 21, 103, 1, 20, 104, 2, 20, 55, 70, 105, 2,
1546  19, 51, 73, 106, 2, 18, 49, 75, 106, 2, 17, 47, 77, 107, 2, 16, 45, 79, 108, 2, 16, 44,
1547  81, 108, 2, 15, 42, 82, 109, 2, 15, 41, 83, 110, 2, 14, 40, 84, 110, 2, 13, 39, 85, 111,
1548  2, 13, 38, 86, 111, 2, 12, 37, 87, 112, 2, 12, 36, 88, 113, 2, 11, 35, 89, 113, 2, 11,
1549  35, 90, 113, 2, 10, 34, 90, 114, 2, 10, 33, 91, 114, 2, 10, 32, 92, 115, 2, 9, 32, 93,
1550  115, 2, 9, 31, 93, 115, 2, 9, 31, 94, 116, 2, 8, 30, 94, 116, 2, 8, 30, 95, 116, 2,
1551  8, 29, 95, 117, 2, 7, 29, 96, 117, 2, 7, 28, 96, 117, 2, 7, 28, 96, 117, 2, 7, 28,
1552  96, 118, 2, 7, 28, 97, 118, 2, 6, 27, 97, 118, 2, 6, 27, 97, 118, 2, 6, 27, 98, 118,
1553  2, 6, 27, 98, 118, 2, 6, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6,
1554  26, 98, 119, 2, 6, 26, 98, 119, 2, 5, 26, 98, 119, 2, 5, 26, 99, 119, 2, 5, 26, 99,
1555  119, 2, 5, 26, 99, 119, 2, 5, 26, 99, 119, 2, 5, 26, 99, 119, 2, 5, 26, 99, 119, 2,
1556  5, 26, 99, 119, 2, 5, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6, 26,
1557  98, 119, 2, 6, 26, 98, 119, 2, 6, 26, 98, 118, 2, 6, 27, 98, 118, 2, 6, 27, 97, 118,
1558  2, 6, 27, 97, 118, 2, 6, 27, 97, 118, 2, 7, 28, 97, 118, 2, 7, 28, 96, 117, 2, 7,
1559  28, 96, 117, 2, 7, 29, 96, 117, 2, 8, 29, 95, 117, 2, 8, 30, 95, 117, 2, 8, 30, 94,
1560  116, 2, 8, 31, 94, 116, 2, 9, 31, 93, 116, 2, 9, 32, 93, 115, 2, 9, 32, 92, 115, 2,
1561  10, 33, 92, 115, 2, 10, 34, 91, 114, 2, 11, 34, 90, 114, 2, 11, 35, 89, 113, 2, 12, 36,
1562  89, 113, 2, 12, 37, 88, 112, 2, 13, 37, 87, 112, 2, 13, 38, 86, 111, 2, 14, 39, 85, 111,
1563  2, 14, 41, 84, 110, 2, 15, 42, 83, 110, 2, 16, 43, 81, 109, 2, 16, 45, 80, 108, 2, 17,
1564  46, 78, 107, 2, 18, 48, 76, 107, 2, 18, 50, 74, 106, 2, 19, 53, 71, 105, 2, 20, 57, 67,
1565  104, 1, 21, 103, 1, 22, 103, 1, 23, 102, 1, 24, 101, 1, 25, 100, 1, 26, 99, 1, 27, 97,
1566  1, 28, 96, 1, 29, 95, 1, 31, 94, 1, 32, 92, 1, 33, 91, 1, 35, 89, 1, 37, 88, 1,
1567  39, 86, 1, 41, 84, 1, 43, 81, 1, 46, 79, 1, 49, 75, 1, 54, 71, 80, 37, 157, 1, 23,
1568  76, 1, 19, 85, 1, 17, 90, 1, 16, 93, 1, 15, 95, 1, 15, 97, 1, 14, 99, 1, 14, 101,
1569  1, 14, 102, 1, 13, 104, 1, 13, 105, 1, 13, 106, 1, 14, 107, 1, 14, 108, 1, 14, 109, 1,
1570  15, 110, 1, 15, 111, 1, 16, 111, 1, 17, 112, 1, 19, 113, 1, 25, 113, 2, 30, 50, 82, 114,
1571  2, 30, 50, 85, 114, 2, 30, 50, 88, 115, 2, 30, 50, 90, 115, 2, 30, 50, 91, 116, 2, 30,
1572  50, 92, 116, 2, 30, 50, 93, 116, 2, 30, 50, 94, 117, 2, 30, 50, 95, 117, 2, 30, 50, 96,
1573  117, 2, 30, 50, 96, 118, 2, 30, 50, 97, 118, 2, 30, 50, 97, 118, 2, 30, 50, 97, 118, 2,
1574  30, 50, 98, 118, 2, 30, 50, 98, 118, 2, 30, 50, 98, 118, 2, 30, 50, 98, 118, 2, 30, 50,
1575  98, 118, 2, 30, 50, 98, 118, 2, 30, 50, 98, 118, 2, 30, 50, 97, 118, 2, 30, 50, 97, 118,
1576  2, 30, 50, 97, 118, 2, 30, 50, 96, 118, 2, 30, 50, 96, 117, 2, 30, 50, 95, 117, 2, 30,
1577  50, 94, 117, 2, 30, 50, 94, 117, 2, 30, 50, 93, 116, 2, 30, 50, 92, 116, 2, 30, 50, 91,
1578  116, 2, 30, 50, 89, 115, 2, 30, 50, 87, 115, 2, 30, 50, 86, 114, 2, 30, 50, 83, 114, 2,
1579  30, 50, 80, 113, 2, 30, 50, 74, 112, 1, 30, 112, 1, 30, 111, 1, 30, 110, 1, 30, 109, 1,
1580  30, 108, 1, 30, 107, 1, 30, 106, 1, 30, 105, 1, 30, 104, 1, 30, 102, 1, 30, 101, 1, 30,
1581  100, 1, 30, 98, 1, 30, 97, 1, 30, 95, 1, 30, 93, 1, 30, 91, 1, 30, 88, 1, 30, 85,
1582  1, 30, 79, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1,
1583  30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30,
1584  50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50, 1, 30, 50,
1585  1, 22, 76, 1, 18, 79, 1, 17, 81, 1, 16, 82, 1, 15, 83, 1, 14, 83, 1, 14, 84, 1,
1586  14, 84, 1, 14, 84, 1, 13, 84, 1, 13, 84, 1, 13, 84, 1, 14, 84, 1, 14, 84, 1, 14,
1587  83, 1, 15, 83, 1, 16, 82, 1, 17, 81, 1, 18, 80, 1, 20, 77, 81, 34, 187, 1, 57, 67,
1588  1, 51, 73, 1, 47, 77, 1, 44, 80, 1, 42, 82, 1, 40, 85, 1, 38, 87, 1, 36, 88, 1,
1589  34, 90, 1, 33, 91, 1, 31, 93, 1, 30, 94, 1, 29, 95, 1, 27, 97, 1, 26, 98, 1, 25,
1590  99, 1, 24, 100, 1, 23, 101, 1, 22, 102, 1, 21, 103, 1, 20, 104, 2, 20, 55, 70, 105, 2,
1591  19, 51, 73, 105, 2, 18, 49, 75, 106, 2, 17, 47, 77, 107, 2, 16, 45, 79, 108, 2, 16, 44,
1592  80, 108, 2, 15, 42, 82, 109, 2, 15, 41, 83, 110, 2, 14, 40, 84, 110, 2, 13, 39, 85, 111,
1593  2, 13, 38, 86, 111, 2, 12, 37, 87, 112, 2, 12, 36, 88, 112, 2, 11, 35, 89, 113, 2, 11,
1594  35, 90, 113, 2, 10, 34, 90, 114, 2, 10, 33, 91, 114, 2, 10, 32, 92, 115, 2, 9, 32, 93,
1595  115, 2, 9, 31, 93, 115, 2, 9, 31, 94, 116, 2, 8, 30, 94, 116, 2, 8, 30, 94, 116, 2,
1596  8, 29, 95, 117, 2, 7, 29, 95, 117, 2, 7, 28, 96, 117, 2, 7, 28, 96, 117, 2, 7, 28,
1597  96, 118, 2, 6, 28, 97, 118, 2, 6, 27, 97, 118, 2, 6, 27, 97, 118, 2, 6, 27, 97, 118,
1598  2, 6, 26, 98, 118, 2, 6, 26, 98, 118, 2, 6, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6,
1599  26, 98, 119, 2, 5, 26, 98, 119, 2, 5, 26, 98, 119, 2, 5, 26, 98, 119, 2, 5, 26, 98,
1600  119, 2, 5, 26, 99, 119, 2, 5, 26, 99, 119, 2, 5, 26, 99, 119, 2, 5, 26, 98, 119, 2,
1601  5, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6, 26, 98, 119, 2, 6, 26,
1602  98, 119, 2, 6, 26, 98, 118, 2, 6, 26, 98, 118, 2, 6, 27, 98, 118, 2, 6, 27, 97, 118,
1603  2, 6, 27, 97, 118, 2, 7, 27, 97, 118, 2, 7, 28, 97, 118, 2, 7, 28, 96, 117, 2, 7,
1604  28, 96, 117, 2, 7, 28, 96, 117, 2, 8, 29, 95, 117, 2, 8, 29, 95, 116, 2, 8, 30, 94,
1605  116, 2, 9, 30, 94, 116, 2, 9, 31, 93, 115, 2, 9, 31, 93, 115, 2, 10, 32, 92, 115, 2,
1606  10, 33, 92, 114, 2, 10, 33, 91, 114, 2, 11, 34, 90, 114, 2, 11, 35, 89, 113, 2, 12, 36,
1607  88, 113, 2, 12, 36, 88, 112, 2, 13, 37, 87, 112, 2, 13, 38, 86, 111, 2, 14, 39, 85, 111,
1608  2, 14, 41, 84, 110, 2, 15, 42, 82, 109, 2, 16, 43, 81, 109, 2, 16, 44, 80, 108, 2, 17,
1609  46, 78, 107, 2, 18, 48, 76, 107, 2, 19, 50, 74, 106, 2, 19, 53, 71, 105, 2, 20, 57, 67,
1610  104, 1, 21, 103, 1, 22, 103, 1, 23, 102, 1, 24, 101, 1, 25, 100, 1, 26, 99, 1, 27, 97,
1611  1, 28, 96, 1, 29, 95, 1, 31, 94, 1, 32, 92, 1, 33, 91, 1, 35, 89, 1, 37, 88, 1,
1612  39, 86, 1, 41, 84, 1, 41, 81, 1, 40, 79, 1, 39, 75, 1, 38, 70, 2, 37, 66, 107, 110,
1613  2, 36, 73, 105, 114, 2, 35, 78, 103, 115, 2, 34, 82, 101, 116, 2, 33, 84, 99, 117, 2, 32,
1614  87, 97, 118, 2, 31, 89, 95, 118, 1, 30, 119, 1, 29, 119, 1, 28, 119, 1, 27, 119, 1, 26,
1615  119, 1, 26, 119, 1, 25, 119, 1, 25, 118, 1, 25, 118, 1, 25, 117, 1, 25, 116, 1, 25, 115,
1616  1, 25, 114, 1, 25, 112, 1, 26, 110, 2, 27, 56, 73, 109, 2, 27, 51, 76, 107, 2, 29, 46,
1617  79, 105, 2, 30, 42, 82, 102, 2, 33, 37, 86, 98, 82, 37, 157, 1, 14, 66, 1, 10, 76, 1,
1618  8, 80, 1, 7, 84, 1, 6, 86, 1, 5, 89, 1, 5, 91, 1, 5, 92, 1, 4, 94, 1, 4,
1619  95, 1, 4, 96, 1, 4, 97, 1, 4, 98, 1, 5, 99, 1, 5, 100, 1, 5, 101, 1, 6, 102,
1620  1, 7, 103, 1, 8, 103, 1, 10, 104, 1, 15, 104, 2, 21, 41, 73, 105, 2, 21, 41, 77, 106,
1621  2, 21, 41, 79, 106, 2, 21, 41, 81, 106, 2, 21, 41, 82, 107, 2, 21, 41, 83, 107, 2, 21,
1622  41, 84, 107, 2, 21, 41, 85, 108, 2, 21, 41, 86, 108, 2, 21, 41, 87, 108, 2, 21, 41, 87,
1623  108, 2, 21, 41, 88, 108, 2, 21, 41, 88, 108, 2, 21, 41, 88, 109, 2, 21, 41, 88, 109, 2,
1624  21, 41, 88, 109, 2, 21, 41, 88, 109, 2, 21, 41, 88, 109, 2, 21, 41, 88, 109, 2, 21, 41,
1625  87, 108, 2, 21, 41, 87, 108, 2, 21, 41, 86, 108, 2, 21, 41, 86, 108, 2, 21, 41, 85, 108,
1626  2, 21, 41, 84, 107, 2, 21, 41, 82, 107, 2, 21, 41, 81, 107, 2, 21, 41, 79, 106, 2, 21,
1627  41, 77, 106, 2, 21, 41, 75, 105, 2, 21, 41, 73, 105, 2, 21, 41, 69, 104, 2, 21, 41, 65,
1628  104, 1, 21, 103, 1, 21, 102, 1, 21, 101, 1, 21, 100, 1, 21, 99, 1, 21, 98, 1, 21, 97,
1629  1, 21, 96, 1, 21, 95, 1, 21, 93, 1, 21, 92, 1, 21, 90, 1, 21, 89, 1, 21, 87, 1,
1630  21, 87, 1, 21, 88, 1, 21, 89, 1, 21, 90, 1, 21, 91, 1, 21, 92, 2, 21, 41, 61, 93,
1631  2, 21, 41, 63, 94, 2, 21, 41, 65, 95, 2, 21, 41, 66, 96, 2, 21, 41, 68, 97, 2, 21,
1632  41, 69, 98, 2, 21, 41, 70, 99, 2, 21, 41, 71, 99, 2, 21, 41, 72, 100, 2, 21, 41, 74,
1633  101, 2, 21, 41, 75, 102, 2, 21, 41, 76, 103, 2, 21, 41, 77, 103, 2, 21, 41, 77, 104, 2,
1634  21, 41, 78, 105, 2, 21, 41, 79, 106, 2, 21, 41, 80, 106, 2, 21, 41, 81, 107, 2, 21, 41,
1635  82, 108, 2, 21, 41, 83, 108, 2, 21, 41, 84, 109, 2, 21, 41, 84, 110, 2, 21, 41, 85, 110,
1636  2, 21, 41, 86, 111, 2, 21, 41, 87, 112, 2, 21, 41, 88, 112, 2, 12, 54, 88, 119, 2, 9,
1637  57, 89, 123, 2, 8, 58, 90, 124, 2, 7, 60, 91, 125, 2, 6, 60, 91, 126, 2, 5, 61, 92,
1638  126, 2, 5, 61, 93, 127, 2, 4, 62, 93, 127, 2, 4, 62, 94, 127, 2, 4, 62, 95, 127, 2,
1639  4, 62, 96, 127, 2, 4, 62, 96, 127, 2, 4, 62, 97, 127, 2, 5, 61, 98, 127, 2, 5, 61,
1640  98, 126, 2, 6, 61, 99, 126, 2, 6, 60, 100, 125, 2, 7, 59, 100, 124, 2, 9, 57, 101, 123,
1641  2, 11, 55, 102, 120, 83, 34, 160, 1, 58, 66, 1, 50, 74, 1, 46, 78, 2, 43, 81, 96, 97,
1642  2, 41, 83, 92, 101, 2, 39, 85, 90, 102, 2, 36, 87, 89, 103, 1, 35, 104, 1, 34, 105, 1,
1643  32, 105, 1, 31, 106, 1, 30, 106, 1, 29, 106, 1, 28, 106, 1, 27, 106, 1, 26, 106, 1, 25,
1644  106, 1, 24, 106, 1, 24, 106, 1, 23, 106, 1, 22, 106, 2, 22, 54, 70, 106, 2, 21, 50, 73,
1645  106, 2, 21, 48, 76, 106, 2, 20, 46, 78, 106, 2, 20, 45, 79, 106, 2, 19, 44, 81, 106, 2,
1646  19, 42, 82, 106, 2, 19, 41, 83, 106, 2, 19, 41, 84, 106, 2, 18, 40, 84, 106, 2, 18, 39,
1647  85, 106, 2, 18, 39, 85, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106, 2, 18, 38, 86, 106,
1648  2, 18, 38, 86, 106, 2, 18, 38, 87, 106, 2, 18, 38, 87, 106, 2, 18, 39, 87, 105, 2, 18,
1649  39, 88, 105, 2, 18, 40, 88, 104, 2, 18, 40, 89, 104, 2, 19, 41, 90, 103, 2, 19, 42, 92,
1650  101, 2, 19, 43, 95, 98, 1, 19, 44, 1, 20, 45, 1, 20, 47, 1, 21, 50, 1, 21, 53, 1,
1651  22, 58, 1, 22, 62, 1, 23, 67, 1, 23, 72, 1, 24, 76, 1, 25, 80, 1, 26, 84, 1, 27,
1652  87, 1, 27, 89, 1, 28, 92, 1, 30, 94, 1, 31, 96, 1, 32, 97, 1, 34, 98, 1, 35, 100,
1653  1, 37, 101, 1, 40, 102, 1, 42, 103, 1, 45, 103, 1, 49, 104, 1, 52, 105, 1, 57, 106, 1,
1654  61, 106, 1, 67, 107, 1, 71, 107, 1, 76, 108, 1, 79, 108, 1, 81, 109, 1, 83, 109, 1, 85,
1655  109, 1, 86, 110, 2, 23, 25, 87, 110, 2, 19, 29, 88, 110, 2, 18, 30, 89, 110, 2, 17, 31,
1656  89, 110, 2, 16, 32, 90, 110, 2, 15, 33, 90, 111, 2, 15, 33, 90, 111, 2, 15, 33, 90, 111,
1657  2, 14, 34, 91, 111, 2, 14, 34, 90, 111, 2, 14, 35, 90, 111, 2, 14, 35, 90, 110, 2, 14,
1658  35, 90, 110, 2, 14, 36, 89, 110, 2, 14, 36, 88, 110, 2, 14, 38, 87, 110, 2, 14, 39, 86,
1659  110, 2, 14, 40, 85, 109, 2, 14, 42, 84, 109, 2, 14, 44, 82, 109, 2, 14, 46, 80, 108, 2,
1660  14, 49, 77, 108, 2, 14, 52, 74, 108, 2, 14, 57, 69, 107, 1, 14, 106, 1, 14, 106, 1, 14,
1661  105, 1, 14, 105, 1, 14, 104, 1, 14, 103, 1, 14, 102, 1, 14, 101, 1, 14, 100, 1, 14, 98,
1662  1, 15, 97, 1, 15, 96, 2, 16, 32, 33, 94, 2, 16, 31, 35, 93, 2, 17, 30, 38, 90, 2,
1663  19, 29, 40, 88, 2, 21, 27, 43, 86, 1, 46, 83, 1, 50, 79, 1, 55, 75, 84, 37, 157, 1,
1664  9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9,
1665  114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114,
1666  1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 1, 9, 114, 3, 9, 30, 52,
1667  72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72,
1668  94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94,
1669  114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114,
1670  3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3,
1671  9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9,
1672  30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 9, 30,
1673  52, 72, 94, 114, 3, 9, 30, 52, 72, 94, 114, 3, 10, 30, 52, 72, 94, 114, 3, 10, 29, 52,
1674  72, 94, 114, 3, 10, 29, 52, 72, 95, 114, 3, 10, 29, 52, 72, 95, 114, 3, 10, 29, 52, 72,
1675  95, 114, 3, 11, 28, 52, 72, 95, 113, 3, 11, 28, 52, 72, 96, 113, 3, 12, 27, 52, 72, 96,
1676  112, 3, 12, 27, 52, 72, 97, 111, 3, 14, 26, 52, 72, 98, 110, 3, 15, 24, 52, 72, 100, 109,
1677  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1678  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1679  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1680  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1681  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1682  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1683  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 33, 91, 1, 30, 94, 1, 28, 96, 1, 27, 97, 1,
1684  26, 97, 1, 26, 98, 1, 25, 99, 1, 25, 99, 1, 25, 99, 1, 25, 99, 1, 25, 99, 1, 25,
1685  99, 1, 25, 99, 1, 25, 99, 1, 25, 98, 1, 26, 98, 1, 27, 97, 1, 28, 96, 1, 29, 94,
1686  1, 32, 92, 85, 37, 160, 2, 14, 48, 77, 111, 2, 9, 51, 73, 115, 2, 7, 53, 71, 117, 2,
1687  6, 54, 70, 118, 2, 6, 55, 69, 119, 2, 5, 56, 68, 120, 2, 4, 56, 68, 120, 2, 4, 57,
1688  68, 121, 2, 4, 57, 67, 121, 2, 4, 57, 67, 121, 2, 3, 57, 67, 121, 2, 4, 57, 67, 121,
1689  2, 4, 57, 67, 121, 2, 4, 57, 68, 121, 2, 4, 56, 68, 120, 2, 5, 56, 69, 120, 2, 6,
1690  55, 69, 119, 2, 6, 54, 70, 118, 2, 8, 53, 71, 117, 2, 9, 51, 73, 115, 2, 14, 46, 79,
1691  110, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2,
1692  16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36,
1693  88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108,
1694  2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16,
1695  36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88,
1696  108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2,
1697  16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36,
1698  88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108,
1699  2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16,
1700  36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88,
1701  108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2,
1702  16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36,
1703  88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108,
1704  2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16, 36, 88, 108, 2, 16,
1705  37, 88, 108, 2, 16, 37, 88, 108, 2, 16, 37, 88, 108, 2, 17, 37, 87, 108, 2, 17, 38, 87,
1706  108, 2, 17, 38, 87, 108, 2, 17, 38, 86, 107, 2, 17, 39, 86, 107, 2, 17, 39, 85, 107, 2,
1707  18, 40, 84, 107, 2, 18, 41, 84, 106, 2, 18, 42, 83, 106, 2, 19, 43, 82, 105, 2, 19, 43,
1708  81, 105, 2, 20, 45, 80, 105, 2, 20, 46, 79, 104, 2, 21, 47, 77, 104, 2, 21, 49, 76, 103,
1709  2, 22, 51, 74, 103, 2, 23, 53, 71, 102, 2, 23, 57, 67, 101, 1, 24, 101, 1, 25, 100, 1,
1710  26, 99, 1, 27, 98, 1, 28, 97, 1, 28, 96, 1, 29, 95, 1, 30, 94, 1, 32, 93, 1, 33,
1711  92, 1, 34, 91, 1, 35, 90, 1, 37, 88, 1, 38, 87, 1, 40, 85, 1, 42, 83, 1, 44, 81,
1712  1, 46, 78, 1, 49, 75, 1, 54, 71, 86, 37, 157, 2, 6, 41, 83, 117, 2, 2, 45, 79, 122,
1713  2, 1, 47, 77, 124, 2, 0, 48, 76, 125, 2, 0, 49, 75, 126, 2, 0, 50, 74, 126, 2, 0,
1714  50, 74, 127, 2, 0, 51, 74, 127, 2, 0, 51, 73, 127, 2, 0, 51, 73, 127, 2, 0, 51, 73,
1715  128, 2, 0, 51, 73, 127, 2, 0, 51, 73, 127, 2, 0, 51, 74, 127, 2, 0, 50, 74, 127, 2,
1716  0, 50, 75, 126, 2, 0, 49, 75, 125, 2, 0, 48, 76, 125, 2, 1, 47, 77, 123, 2, 2, 45,
1717  79, 122, 2, 7, 40, 84, 117, 2, 11, 33, 91, 113, 2, 12, 34, 91, 113, 2, 12, 34, 90, 112,
1718  2, 12, 34, 90, 112, 2, 13, 35, 89, 111, 2, 13, 35, 89, 111, 2, 14, 36, 89, 111, 2, 14,
1719  36, 88, 110, 2, 14, 37, 88, 110, 2, 15, 37, 87, 109, 2, 15, 37, 87, 109, 2, 16, 38, 86,
1720  109, 2, 16, 38, 86, 108, 2, 17, 39, 86, 108, 2, 17, 39, 85, 107, 2, 17, 39, 85, 107, 2,
1721  18, 40, 84, 106, 2, 18, 40, 84, 106, 2, 19, 41, 84, 106, 2, 19, 41, 83, 105, 2, 19, 42,
1722  83, 105, 2, 20, 42, 82, 104, 2, 20, 42, 82, 104, 2, 21, 43, 81, 104, 2, 21, 43, 81, 103,
1723  2, 22, 44, 81, 103, 2, 22, 44, 80, 102, 2, 22, 44, 80, 102, 2, 23, 45, 79, 101, 2, 23,
1724  45, 79, 101, 2, 24, 46, 78, 101, 2, 24, 46, 78, 100, 2, 24, 47, 78, 100, 2, 25, 47, 77,
1725  99, 2, 25, 47, 77, 99, 2, 26, 48, 76, 98, 2, 26, 48, 76, 98, 2, 27, 49, 76, 98, 2,
1726  27, 49, 75, 97, 2, 27, 49, 75, 97, 2, 28, 50, 74, 96, 2, 28, 50, 74, 96, 2, 29, 51,
1727  73, 96, 2, 29, 51, 73, 95, 2, 29, 52, 73, 95, 2, 30, 52, 72, 94, 2, 30, 52, 72, 94,
1728  2, 31, 53, 71, 93, 2, 31, 53, 71, 93, 2, 32, 54, 71, 93, 2, 32, 54, 70, 92, 2, 32,
1729  54, 70, 92, 2, 33, 55, 69, 91, 2, 33, 55, 69, 91, 2, 34, 56, 68, 91, 2, 34, 56, 68,
1730  90, 2, 34, 57, 68, 90, 2, 35, 57, 67, 89, 2, 35, 57, 67, 89, 2, 36, 58, 66, 88, 2,
1731  36, 58, 66, 88, 2, 37, 59, 65, 88, 2, 37, 59, 65, 87, 2, 37, 59, 65, 87, 2, 38, 60,
1732  64, 86, 2, 38, 60, 64, 86, 2, 39, 61, 63, 86, 2, 39, 61, 63, 85, 2, 39, 62, 63, 85,
1733  1, 40, 84, 1, 40, 84, 1, 41, 83, 1, 41, 83, 1, 42, 83, 1, 42, 82, 1, 42, 82, 1,
1734  43, 81, 1, 43, 81, 1, 44, 80, 1, 44, 80, 1, 44, 80, 1, 45, 79, 1, 45, 79, 1, 46,
1735  78, 1, 46, 78, 1, 47, 78, 1, 47, 77, 1, 47, 77, 1, 48, 76, 1, 48, 76, 1, 49, 75,
1736  1, 49, 75, 1, 49, 75, 1, 50, 74, 1, 50, 74, 1, 51, 73, 1, 51, 73, 1, 52, 73, 1,
1737  52, 72, 87, 37, 157, 2, 9, 43, 81, 115, 2, 5, 47, 77, 119, 2, 3, 49, 75, 121, 2, 2,
1738  51, 74, 123, 2, 1, 51, 73, 123, 2, 0, 52, 72, 124, 2, 0, 52, 72, 125, 2, 0, 53, 72,
1739  125, 2, 0, 53, 71, 125, 2, 0, 53, 71, 125, 2, 0, 53, 71, 125, 2, 0, 53, 71, 125, 2,
1740  0, 53, 71, 125, 2, 0, 53, 72, 125, 2, 0, 52, 72, 124, 2, 0, 52, 73, 124, 2, 1, 51,
1741  73, 123, 2, 2, 50, 74, 122, 2, 3, 49, 75, 121, 2, 4, 47, 77, 119, 2, 8, 42, 83, 116,
1742  2, 9, 29, 95, 116, 2, 9, 29, 95, 115, 2, 9, 29, 95, 115, 2, 9, 30, 95, 115, 2, 9,
1743  30, 95, 115, 2, 9, 30, 95, 115, 2, 9, 30, 95, 115, 2, 9, 30, 94, 115, 2, 10, 30, 94,
1744  115, 3, 10, 30, 52, 73, 94, 115, 3, 10, 30, 51, 73, 94, 114, 3, 10, 30, 51, 74, 94, 114,
1745  3, 10, 31, 51, 74, 94, 114, 3, 10, 31, 50, 74, 94, 114, 3, 10, 31, 50, 75, 94, 114, 3,
1746  10, 31, 50, 75, 93, 114, 3, 11, 31, 49, 75, 93, 114, 3, 11, 31, 49, 76, 93, 114, 3, 11,
1747  31, 49, 76, 93, 113, 3, 11, 31, 48, 76, 93, 113, 3, 11, 32, 48, 77, 93, 113, 3, 11, 32,
1748  48, 77, 93, 113, 3, 11, 32, 47, 77, 93, 113, 3, 11, 32, 47, 78, 93, 113, 3, 12, 32, 47,
1749  78, 92, 113, 3, 12, 32, 46, 78, 92, 113, 3, 12, 32, 46, 79, 92, 113, 3, 12, 32, 46, 79,
1750  92, 112, 3, 12, 33, 45, 79, 92, 112, 3, 12, 33, 45, 80, 92, 112, 3, 12, 33, 45, 80, 92,
1751  112, 3, 12, 33, 44, 80, 92, 112, 3, 12, 33, 44, 81, 91, 112, 3, 13, 33, 44, 81, 91, 112,
1752  3, 13, 33, 43, 81, 91, 112, 3, 13, 33, 43, 82, 91, 111, 3, 13, 33, 43, 82, 91, 111, 3,
1753  13, 34, 42, 82, 91, 111, 3, 13, 34, 42, 83, 91, 111, 3, 13, 34, 41, 83, 91, 111, 3, 13,
1754  34, 41, 83, 91, 111, 3, 14, 34, 41, 84, 90, 111, 3, 14, 34, 40, 84, 90, 111, 4, 14, 34,
1755  40, 62, 63, 84, 90, 111, 4, 14, 34, 40, 61, 63, 85, 90, 110, 4, 14, 35, 39, 61, 63, 85,
1756  90, 110, 4, 14, 35, 39, 61, 64, 85, 90, 110, 4, 14, 35, 39, 60, 64, 86, 90, 110, 4, 14,
1757  35, 38, 60, 64, 86, 90, 110, 4, 15, 35, 38, 60, 65, 86, 89, 110, 4, 15, 35, 38, 59, 65,
1758  87, 89, 110, 4, 15, 35, 37, 59, 65, 87, 89, 110, 4, 15, 35, 37, 59, 66, 87, 89, 109, 4,
1759  15, 35, 37, 58, 66, 88, 89, 109, 3, 15, 58, 66, 88, 89, 109, 3, 15, 58, 67, 88, 89, 109,
1760  2, 15, 57, 67, 109, 2, 16, 57, 67, 109, 2, 16, 57, 68, 109, 2, 16, 56, 68, 109, 2, 16,
1761  56, 68, 109, 2, 16, 56, 69, 108, 2, 16, 55, 69, 108, 2, 16, 55, 70, 108, 2, 16, 55, 70,
1762  108, 2, 16, 54, 70, 108, 2, 17, 54, 71, 108, 2, 17, 54, 71, 108, 2, 17, 53, 71, 108, 2,
1763  17, 53, 72, 107, 2, 17, 53, 72, 107, 2, 17, 52, 72, 107, 2, 17, 52, 73, 107, 2, 17, 52,
1764  73, 107, 2, 18, 51, 73, 107, 2, 18, 51, 74, 107, 2, 18, 51, 74, 107, 2, 18, 50, 74, 107,
1765  2, 18, 50, 75, 106, 2, 18, 50, 75, 106, 2, 18, 49, 75, 106, 2, 18, 49, 76, 106, 2, 19,
1766  49, 76, 106, 2, 19, 48, 76, 106, 2, 19, 48, 77, 106, 2, 19, 48, 77, 106, 2, 19, 47, 77,
1767  105, 2, 19, 47, 78, 105, 2, 19, 47, 78, 105, 2, 19, 46, 78, 105, 2, 20, 46, 79, 105, 2,
1768  20, 46, 79, 105, 2, 20, 46, 79, 105, 2, 20, 45, 80, 105, 2, 20, 45, 80, 105, 2, 20, 45,
1769  80, 104, 2, 20, 44, 81, 104, 2, 20, 44, 81, 104, 2, 20, 44, 81, 104, 88, 37, 157, 2, 15,
1770  41, 83, 109, 2, 11, 45, 79, 113, 2, 9, 47, 77, 115, 2, 8, 48, 76, 116, 2, 7, 49, 75,
1771  117, 2, 7, 50, 74, 118, 2, 6, 50, 74, 118, 2, 6, 51, 74, 118, 2, 5, 51, 73, 119, 2,
1772  5, 51, 73, 119, 2, 5, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6, 51, 73, 118, 2, 6, 51,
1773  74, 118, 2, 6, 50, 74, 118, 2, 7, 50, 75, 117, 2, 8, 49, 75, 117, 2, 8, 48, 76, 116,
1774  2, 9, 47, 77, 114, 2, 11, 45, 79, 113, 2, 16, 44, 81, 108, 2, 18, 44, 80, 106, 2, 19,
1775  45, 79, 106, 2, 20, 46, 78, 105, 2, 20, 47, 78, 104, 2, 21, 48, 77, 103, 2, 22, 48, 76,
1776  102, 2, 23, 49, 75, 101, 2, 24, 50, 74, 101, 2, 25, 51, 74, 100, 2, 25, 52, 73, 99, 2,
1777  26, 53, 72, 98, 2, 27, 53, 71, 97, 2, 28, 54, 70, 96, 2, 29, 55, 69, 96, 2, 30, 56,
1778  69, 95, 2, 30, 57, 68, 94, 2, 31, 58, 67, 93, 2, 32, 58, 66, 92, 2, 33, 59, 65, 92,
1779  2, 34, 60, 65, 91, 2, 35, 61, 64, 90, 2, 35, 62, 63, 89, 1, 36, 88, 1, 37, 87, 1,
1780  38, 87, 1, 39, 86, 1, 40, 85, 1, 40, 84, 1, 41, 83, 1, 42, 82, 1, 43, 82, 1, 44,
1781  81, 1, 45, 80, 1, 46, 79, 1, 46, 78, 1, 47, 78, 1, 48, 77, 1, 49, 76, 1, 49, 76,
1782  1, 48, 77, 1, 47, 77, 1, 46, 78, 1, 45, 79, 1, 45, 80, 1, 44, 81, 1, 43, 81, 1,
1783  42, 82, 1, 41, 83, 1, 40, 84, 1, 40, 85, 1, 39, 86, 1, 38, 86, 1, 37, 87, 1, 36,
1784  88, 2, 36, 62, 63, 89, 2, 35, 61, 64, 90, 2, 34, 60, 65, 91, 2, 33, 59, 65, 91, 2,
1785  32, 59, 66, 92, 2, 31, 58, 67, 93, 2, 31, 57, 68, 94, 2, 30, 56, 69, 95, 2, 29, 55,
1786  70, 96, 2, 28, 55, 70, 96, 2, 27, 54, 71, 97, 2, 27, 53, 72, 98, 2, 26, 52, 73, 99,
1787  2, 25, 51, 74, 100, 2, 24, 50, 74, 101, 2, 23, 50, 75, 101, 2, 22, 49, 76, 102, 2, 22,
1788  48, 77, 103, 2, 21, 47, 78, 104, 2, 20, 46, 79, 105, 2, 19, 46, 79, 106, 2, 18, 45, 80,
1789  106, 2, 17, 44, 81, 107, 2, 17, 43, 82, 108, 2, 16, 42, 83, 109, 2, 12, 45, 80, 113, 2,
1790  9, 48, 77, 116, 2, 7, 50, 75, 118, 2, 6, 51, 74, 119, 2, 5, 51, 73, 119, 2, 5, 52,
1791  73, 120, 2, 4, 53, 72, 121, 2, 4, 53, 72, 121, 2, 4, 53, 72, 121, 2, 3, 53, 72, 121,
1792  2, 3, 53, 71, 121, 2, 4, 53, 72, 121, 2, 4, 53, 72, 121, 2, 4, 53, 72, 121, 2, 4,
1793  52, 72, 120, 2, 5, 52, 73, 120, 2, 6, 51, 74, 119, 2, 7, 50, 75, 118, 2, 8, 49, 76,
1794  117, 2, 11, 46, 79, 114, 89, 37, 157, 2, 15, 41, 83, 109, 2, 11, 45, 79, 113, 2, 9, 47,
1795  77, 115, 2, 8, 48, 76, 116, 2, 7, 49, 75, 117, 2, 7, 50, 74, 118, 2, 6, 50, 74, 118,
1796  2, 6, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6,
1797  51, 73, 119, 2, 6, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6, 50, 74, 118, 2, 7, 50, 74,
1798  118, 2, 8, 49, 75, 117, 2, 8, 48, 76, 116, 2, 10, 47, 77, 115, 2, 12, 45, 79, 113, 2,
1799  16, 43, 81, 108, 2, 19, 44, 80, 105, 2, 20, 44, 80, 104, 2, 20, 45, 79, 104, 2, 21, 46,
1800  78, 103, 2, 22, 46, 78, 102, 2, 23, 47, 77, 102, 2, 23, 48, 76, 101, 2, 24, 48, 76, 100,
1801  2, 25, 49, 75, 100, 2, 25, 50, 74, 99, 2, 26, 50, 74, 98, 2, 27, 51, 73, 98, 2, 27,
1802  52, 72, 97, 2, 28, 52, 72, 96, 2, 29, 53, 71, 96, 2, 29, 54, 70, 95, 2, 30, 55, 70,
1803  94, 2, 31, 55, 69, 93, 2, 31, 56, 68, 93, 2, 32, 57, 68, 92, 2, 33, 57, 67, 91, 2,
1804  33, 58, 66, 91, 2, 34, 59, 66, 90, 2, 35, 59, 65, 89, 2, 35, 60, 64, 89, 2, 36, 61,
1805  64, 88, 2, 37, 61, 63, 87, 1, 37, 87, 1, 38, 86, 1, 39, 85, 1, 40, 85, 1, 40, 84,
1806  1, 41, 83, 1, 42, 83, 1, 42, 82, 1, 43, 81, 1, 44, 81, 1, 44, 80, 1, 45, 79, 1,
1807  46, 79, 1, 46, 78, 1, 47, 77, 1, 48, 77, 1, 48, 76, 1, 49, 75, 1, 50, 75, 1, 50,
1808  74, 1, 51, 73, 1, 52, 73, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1809  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1810  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1811  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1812  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 33, 91, 1, 30, 94, 1, 29, 96, 1, 27, 97, 1,
1813  27, 98, 1, 26, 98, 1, 26, 99, 1, 25, 99, 1, 25, 99, 1, 25, 100, 1, 25, 100, 1, 25,
1814  99, 1, 25, 99, 1, 25, 99, 1, 26, 99, 1, 26, 98, 1, 27, 97, 1, 28, 96, 1, 30, 95,
1815  1, 32, 92, 90, 37, 157, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1,
1816  20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20,
1817  104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104, 1, 20, 104,
1818  1, 20, 104, 2, 20, 41, 77, 103, 2, 20, 41, 77, 102, 2, 20, 41, 76, 102, 2, 20, 41, 75,
1819  101, 2, 20, 41, 74, 100, 2, 20, 41, 73, 99, 2, 20, 41, 73, 99, 2, 20, 41, 72, 98, 2,
1820  20, 41, 71, 97, 2, 20, 41, 70, 96, 2, 20, 41, 70, 95, 2, 20, 41, 69, 95, 2, 20, 41,
1821  68, 94, 2, 20, 41, 67, 93, 2, 20, 41, 66, 92, 2, 20, 41, 66, 92, 2, 21, 41, 65, 91,
1822  2, 21, 40, 64, 90, 2, 21, 40, 63, 89, 2, 21, 40, 63, 88, 2, 21, 40, 62, 88, 2, 21,
1823  40, 61, 87, 2, 22, 39, 60, 86, 2, 22, 39, 59, 85, 2, 23, 38, 59, 85, 2, 24, 37, 58,
1824  84, 2, 26, 35, 57, 83, 2, 28, 33, 56, 82, 1, 56, 81, 1, 55, 81, 1, 54, 80, 1, 53,
1825  79, 1, 52, 78, 1, 52, 78, 1, 51, 77, 1, 50, 76, 1, 49, 75, 1, 49, 74, 1, 48, 74,
1826  1, 47, 73, 1, 46, 72, 1, 45, 71, 1, 45, 71, 1, 44, 70, 1, 43, 69, 1, 42, 68, 1,
1827  41, 67, 1, 41, 67, 1, 40, 66, 1, 39, 65, 2, 38, 64, 97, 100, 2, 38, 64, 94, 103, 2,
1828  37, 63, 92, 105, 2, 36, 62, 91, 106, 2, 35, 61, 90, 106, 2, 34, 60, 90, 107, 2, 34, 60,
1829  89, 107, 2, 33, 59, 89, 108, 2, 32, 58, 89, 108, 2, 31, 57, 89, 108, 2, 31, 56, 88, 108,
1830  2, 30, 56, 88, 108, 2, 29, 55, 88, 108, 2, 28, 54, 88, 109, 2, 27, 53, 88, 109, 2, 27,
1831  53, 88, 109, 2, 26, 52, 88, 109, 2, 25, 51, 88, 109, 2, 24, 50, 88, 109, 2, 24, 49, 88,
1832  109, 2, 23, 49, 88, 109, 2, 22, 48, 88, 109, 2, 21, 47, 88, 109, 2, 20, 46, 88, 109, 2,
1833  20, 46, 88, 109, 2, 19, 45, 88, 109, 2, 18, 44, 88, 109, 2, 17, 43, 88, 109, 2, 17, 42,
1834  88, 109, 1, 16, 109, 1, 16, 109, 1, 16, 109, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16,
1835  108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108,
1836  1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 91, 29, 189, 1,
1837  52, 88, 1, 52, 92, 1, 52, 94, 1, 52, 95, 1, 52, 96, 1, 52, 97, 1, 52, 97, 1, 52,
1838  97, 1, 52, 98, 1, 52, 98, 1, 52, 98, 1, 52, 98, 1, 52, 98, 1, 52, 97, 1, 52, 97,
1839  1, 52, 96, 1, 52, 96, 1, 52, 95, 1, 52, 93, 1, 52, 91, 1, 52, 72, 1, 52, 72, 1,
1840  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1841  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1842  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1843  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1844  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1845  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1846  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1847  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1848  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1849  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1850  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1851  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1852  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1853  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1854  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1855  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1856  72, 1, 52, 91, 1, 52, 93, 1, 52, 95, 1, 52, 96, 1, 52, 96, 1, 52, 97, 1, 52, 97,
1857  1, 52, 98, 1, 52, 98, 1, 52, 98, 1, 52, 98, 1, 52, 98, 1, 52, 97, 1, 52, 97, 1,
1858  52, 97, 1, 52, 96, 1, 52, 95, 1, 52, 94, 1, 52, 93, 1, 52, 89, 92, 14, 180, 1, 27,
1859  31, 1, 23, 33, 1, 22, 35, 1, 21, 36, 1, 20, 36, 1, 19, 37, 1, 19, 38, 1, 19, 38,
1860  1, 18, 39, 1, 18, 39, 1, 18, 40, 1, 18, 40, 1, 19, 40, 1, 19, 41, 1, 19, 41, 1,
1861  20, 42, 1, 20, 42, 1, 20, 43, 1, 21, 43, 1, 21, 44, 1, 22, 44, 1, 22, 45, 1, 23,
1862  45, 1, 23, 46, 1, 24, 46, 1, 24, 47, 1, 25, 47, 1, 25, 47, 1, 26, 48, 1, 26, 48,
1863  1, 27, 49, 1, 27, 49, 1, 27, 50, 1, 28, 50, 1, 28, 51, 1, 29, 51, 1, 29, 52, 1,
1864  30, 52, 1, 30, 53, 1, 31, 53, 1, 31, 54, 1, 32, 54, 1, 32, 54, 1, 33, 55, 1, 33,
1865  55, 1, 34, 56, 1, 34, 56, 1, 34, 57, 1, 35, 57, 1, 35, 58, 1, 36, 58, 1, 36, 59,
1866  1, 37, 59, 1, 37, 60, 1, 38, 60, 1, 38, 61, 1, 39, 61, 1, 39, 61, 1, 40, 62, 1,
1867  40, 62, 1, 40, 63, 1, 41, 63, 1, 41, 64, 1, 42, 64, 1, 42, 65, 1, 43, 65, 1, 43,
1868  66, 1, 44, 66, 1, 44, 67, 1, 45, 67, 1, 45, 68, 1, 46, 68, 1, 46, 68, 1, 47, 69,
1869  1, 47, 69, 1, 47, 70, 1, 48, 70, 1, 48, 71, 1, 49, 71, 1, 49, 72, 1, 50, 72, 1,
1870  50, 73, 1, 51, 73, 1, 51, 74, 1, 52, 74, 1, 52, 75, 1, 53, 75, 1, 53, 75, 1, 54,
1871  76, 1, 54, 76, 1, 54, 77, 1, 55, 77, 1, 55, 78, 1, 56, 78, 1, 56, 79, 1, 57, 79,
1872  1, 57, 80, 1, 58, 80, 1, 58, 81, 1, 59, 81, 1, 59, 82, 1, 60, 82, 1, 60, 82, 1,
1873  61, 83, 1, 61, 83, 1, 61, 84, 1, 62, 84, 1, 62, 85, 1, 63, 85, 1, 63, 86, 1, 64,
1874  86, 1, 64, 87, 1, 65, 87, 1, 65, 88, 1, 66, 88, 1, 66, 89, 1, 67, 89, 1, 67, 89,
1875  1, 67, 90, 1, 68, 90, 1, 68, 91, 1, 69, 91, 1, 69, 92, 1, 70, 92, 1, 70, 93, 1,
1876  71, 93, 1, 71, 94, 1, 72, 94, 1, 72, 95, 1, 73, 95, 1, 73, 96, 1, 74, 96, 1, 74,
1877  96, 1, 74, 97, 1, 75, 97, 1, 75, 98, 1, 76, 98, 1, 76, 99, 1, 77, 99, 1, 77, 100,
1878  1, 78, 100, 1, 78, 101, 1, 79, 101, 1, 79, 102, 1, 80, 102, 1, 80, 103, 1, 81, 103, 1,
1879  81, 103, 1, 81, 104, 1, 82, 104, 1, 82, 105, 1, 83, 105, 1, 83, 105, 1, 84, 106, 1, 84,
1880  106, 1, 85, 106, 1, 85, 106, 1, 86, 106, 1, 86, 106, 1, 87, 106, 1, 87, 106, 1, 88, 105,
1881  1, 89, 104, 1, 90, 103, 1, 91, 102, 1, 93, 99, 93, 29, 189, 1, 36, 72, 1, 32, 72, 1,
1882  30, 72, 1, 29, 72, 1, 28, 72, 1, 28, 72, 1, 27, 72, 1, 27, 72, 1, 26, 72, 1, 26,
1883  72, 1, 26, 72, 1, 26, 72, 1, 26, 72, 1, 27, 72, 1, 27, 72, 1, 28, 72, 1, 28, 72,
1884  1, 29, 72, 1, 31, 72, 1, 33, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1885  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1886  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1887  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1888  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1889  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1890  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1891  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1892  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1893  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1894  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1895  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1896  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1897  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
1898  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
1899  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
1900  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 33, 72, 1, 31,
1901  72, 1, 29, 72, 1, 29, 72, 1, 28, 72, 1, 27, 72, 1, 27, 72, 1, 27, 72, 1, 27, 72,
1902  1, 26, 72, 1, 27, 72, 1, 27, 72, 1, 27, 72, 1, 27, 72, 1, 28, 72, 1, 28, 72, 1,
1903  29, 72, 1, 30, 72, 1, 32, 72, 1, 35, 72, 94, 24, 90, 1, 61, 63, 1, 60, 64, 1, 59,
1904  65, 1, 58, 65, 1, 57, 66, 1, 57, 67, 1, 56, 68, 1, 55, 69, 1, 54, 70, 1, 53, 70,
1905  1, 52, 71, 1, 52, 72, 1, 51, 73, 1, 50, 74, 1, 49, 75, 1, 48, 75, 1, 47, 76, 1,
1906  47, 77, 1, 46, 78, 1, 45, 79, 1, 44, 80, 1, 43, 80, 1, 42, 81, 1, 42, 82, 1, 41,
1907  83, 1, 40, 84, 1, 39, 85, 1, 38, 85, 1, 38, 86, 1, 37, 87, 1, 36, 88, 1, 35, 89,
1908  2, 34, 61, 63, 90, 2, 33, 60, 64, 90, 2, 33, 59, 65, 91, 2, 32, 58, 65, 92, 2, 31,
1909  57, 66, 93, 2, 30, 57, 67, 94, 2, 29, 56, 68, 95, 2, 28, 55, 69, 95, 2, 28, 54, 70,
1910  96, 2, 27, 53, 70, 97, 2, 26, 52, 71, 98, 2, 25, 52, 72, 99, 2, 24, 51, 73, 100, 2,
1911  23, 50, 74, 100, 2, 23, 49, 75, 101, 2, 22, 48, 76, 102, 2, 21, 47, 76, 103, 2, 20, 47,
1912  77, 104, 2, 20, 46, 78, 104, 2, 19, 45, 79, 105, 2, 19, 44, 80, 106, 2, 18, 43, 81, 106,
1913  2, 18, 43, 81, 106, 2, 18, 42, 82, 106, 2, 18, 41, 83, 106, 2, 18, 40, 84, 106, 2, 18,
1914  39, 85, 106, 2, 18, 38, 86, 106, 2, 19, 37, 87, 105, 2, 20, 37, 87, 104, 2, 20, 36, 88,
1915  104, 2, 21, 35, 89, 103, 2, 23, 33, 91, 101, 2, 24, 32, 92, 100, 95, 198, 218, 1, 1, 124,
1916  1, 0, 127, 1, 0, 128, 1, 0, 129, 1, 0, 130, 1, 0, 131, 1, 0, 131, 1, 0, 131, 1,
1917  0, 132, 1, 0, 132, 1, 0, 132, 1, 0, 132, 1, 0, 131, 1, 0, 131, 1, 0, 131, 1, 0,
1918  130, 1, 0, 129, 1, 0, 128, 1, 0, 127, 1, 1, 124, 96, 22, 56, 1, 47, 51, 1, 45, 53,
1919  1, 44, 55, 1, 44, 56, 1, 43, 57, 1, 43, 59, 1, 43, 60, 1, 43, 61, 1, 43, 62, 1,
1920  44, 64, 1, 44, 65, 1, 45, 66, 1, 46, 67, 1, 48, 68, 1, 49, 70, 1, 50, 71, 1, 51,
1921  72, 1, 53, 73, 1, 54, 75, 1, 55, 76, 1, 56, 77, 1, 58, 78, 1, 59, 79, 1, 60, 80,
1922  1, 61, 81, 1, 62, 81, 1, 64, 81, 1, 65, 81, 1, 66, 81, 1, 67, 81, 1, 69, 80, 1,
1923  70, 80, 1, 72, 78, 1, 74, 76, 97, 65, 161, 1, 50, 71, 1, 44, 76, 1, 39, 80, 1, 35,
1924  82, 1, 31, 85, 1, 27, 86, 1, 25, 88, 1, 23, 90, 1, 22, 91, 1, 22, 92, 1, 21, 93,
1925  1, 21, 94, 1, 20, 95, 1, 20, 95, 1, 20, 96, 1, 20, 97, 1, 21, 97, 1, 21, 98, 1,
1926  21, 98, 1, 21, 99, 2, 22, 55, 69, 99, 2, 23, 48, 74, 99, 2, 24, 43, 76, 100, 2, 25,
1927  38, 77, 100, 2, 28, 34, 78, 100, 1, 79, 100, 1, 79, 100, 1, 80, 100, 1, 80, 100, 1, 80,
1928  101, 1, 80, 101, 1, 80, 101, 1, 80, 101, 2, 54, 65, 80, 101, 2, 45, 75, 80, 101, 1, 41,
1929  101, 1, 37, 101, 1, 35, 101, 1, 32, 101, 1, 30, 101, 1, 28, 101, 1, 27, 101, 1, 26, 101,
1930  1, 24, 101, 1, 23, 101, 1, 22, 101, 1, 20, 101, 1, 19, 101, 1, 19, 101, 1, 18, 101, 1,
1931  17, 101, 1, 16, 101, 1, 15, 101, 1, 15, 101, 2, 14, 49, 71, 101, 2, 13, 45, 77, 101, 2,
1932  13, 42, 80, 101, 2, 12, 40, 80, 101, 2, 12, 39, 80, 101, 2, 12, 37, 80, 101, 2, 11, 36,
1933  80, 101, 2, 11, 34, 80, 101, 2, 11, 33, 80, 101, 2, 10, 32, 80, 101, 2, 10, 32, 80, 101,
1934  2, 10, 31, 79, 101, 2, 10, 31, 77, 101, 2, 10, 31, 75, 101, 2, 10, 31, 74, 101, 2, 10,
1935  32, 71, 101, 2, 10, 32, 69, 101, 2, 11, 33, 66, 101, 2, 11, 35, 64, 109, 2, 11, 36, 60,
1936  113, 2, 11, 40, 56, 114, 1, 12, 115, 1, 12, 116, 1, 12, 117, 1, 13, 117, 1, 14, 117, 1,
1937  14, 117, 1, 15, 118, 1, 16, 118, 1, 17, 118, 1, 18, 117, 1, 19, 117, 1, 20, 117, 1, 21,
1938  116, 2, 23, 78, 80, 115, 2, 24, 76, 80, 114, 2, 25, 74, 80, 113, 2, 27, 71, 80, 111, 1,
1939  30, 67, 1, 32, 64, 1, 37, 58, 1, 45, 49, 98, 29, 160, 1, 7, 36, 1, 4, 36, 1, 3,
1940  36, 1, 2, 36, 1, 1, 36, 1, 0, 36, 1, 0, 36, 1, 0, 36, 1, 0, 36, 1, 0, 36,
1941  1, 0, 36, 1, 0, 36, 1, 0, 36, 1, 0, 36, 1, 0, 36, 1, 1, 36, 1, 2, 36, 1,
1942  2, 36, 1, 4, 36, 1, 6, 36, 1, 16, 36, 1, 16, 36, 1, 16, 36, 1, 16, 36, 1, 16,
1943  36, 1, 16, 36, 1, 16, 36, 1, 16, 36, 1, 16, 36, 1, 16, 36, 1, 16, 36, 1, 16, 36,
1944  1, 16, 36, 1, 16, 36, 1, 16, 36, 1, 16, 36, 2, 16, 36, 59, 76, 2, 16, 36, 54, 81,
1945  2, 16, 36, 51, 84, 2, 16, 36, 48, 87, 2, 16, 36, 46, 89, 2, 16, 36, 43, 91, 2, 16,
1946  36, 42, 93, 2, 16, 36, 40, 94, 2, 16, 36, 38, 96, 1, 16, 97, 1, 16, 99, 1, 16, 100,
1947  1, 16, 101, 1, 16, 102, 1, 16, 103, 1, 16, 104, 1, 16, 105, 1, 16, 106, 1, 16, 107, 1,
1948  16, 107, 2, 16, 61, 72, 108, 2, 16, 57, 76, 109, 2, 16, 54, 79, 110, 2, 16, 53, 81, 110,
1949  2, 16, 51, 83, 111, 2, 16, 49, 84, 111, 2, 16, 48, 86, 112, 2, 16, 47, 87, 112, 2, 16,
1950  46, 88, 113, 2, 16, 45, 89, 113, 2, 16, 44, 90, 114, 2, 16, 43, 91, 114, 2, 16, 42, 92,
1951  115, 2, 16, 41, 92, 115, 2, 16, 41, 93, 115, 2, 16, 40, 93, 116, 2, 16, 40, 94, 116, 2,
1952  16, 39, 95, 116, 2, 16, 39, 95, 116, 2, 16, 38, 95, 116, 2, 16, 38, 96, 117, 2, 16, 38,
1953  96, 117, 2, 16, 37, 96, 117, 2, 16, 37, 96, 117, 2, 16, 37, 97, 117, 2, 16, 37, 97, 117,
1954  2, 16, 37, 97, 117, 2, 16, 37, 97, 117, 2, 16, 37, 97, 117, 2, 16, 37, 97, 117, 2, 16,
1955  37, 97, 117, 2, 16, 37, 97, 117, 2, 16, 37, 97, 117, 2, 16, 37, 97, 117, 2, 16, 37, 97,
1956  117, 2, 16, 37, 97, 117, 2, 16, 37, 96, 117, 2, 16, 38, 96, 117, 2, 16, 38, 96, 117, 2,
1957  16, 38, 95, 116, 2, 16, 39, 95, 116, 2, 16, 39, 94, 116, 2, 16, 40, 94, 116, 2, 16, 41,
1958  93, 115, 2, 16, 41, 92, 115, 2, 16, 42, 92, 115, 2, 16, 43, 91, 114, 2, 16, 44, 90, 114,
1959  2, 16, 45, 89, 113, 2, 16, 46, 87, 113, 2, 16, 48, 86, 112, 2, 16, 50, 84, 112, 2, 7,
1960  52, 82, 111, 2, 4, 54, 79, 111, 2, 3, 59, 75, 110, 1, 2, 109, 1, 1, 109, 1, 0, 108,
1961  1, 0, 107, 1, 0, 106, 1, 0, 105, 1, 0, 104, 1, 0, 103, 1, 0, 102, 1, 0, 101, 1,
1962  0, 100, 1, 0, 98, 2, 1, 36, 37, 97, 2, 1, 36, 39, 95, 2, 2, 36, 41, 93, 2, 4,
1963  36, 43, 91, 2, 6, 36, 45, 89, 1, 48, 86, 1, 51, 83, 1, 56, 78, 99, 65, 161, 1, 55,
1964  75, 1, 50, 81, 1, 46, 84, 2, 43, 88, 97, 105, 2, 41, 90, 96, 107, 2, 39, 92, 94, 108,
1965  1, 37, 109, 1, 35, 110, 1, 34, 110, 1, 32, 110, 1, 31, 111, 1, 30, 111, 1, 29, 111, 1,
1966  27, 111, 1, 26, 111, 1, 26, 111, 1, 25, 111, 1, 24, 111, 1, 23, 111, 1, 22, 111, 2, 21,
1967  58, 72, 111, 2, 21, 54, 77, 111, 2, 20, 51, 80, 111, 2, 19, 49, 82, 111, 2, 19, 47, 84,
1968  111, 2, 18, 45, 86, 111, 2, 18, 44, 87, 111, 2, 17, 43, 88, 111, 2, 17, 41, 89, 111, 2,
1969  16, 41, 89, 111, 2, 16, 40, 90, 111, 2, 16, 39, 90, 111, 2, 15, 38, 91, 111, 2, 15, 37,
1970  91, 111, 2, 15, 37, 91, 111, 2, 14, 36, 91, 110, 2, 14, 36, 92, 110, 2, 14, 35, 92, 110,
1971  2, 14, 35, 93, 109, 2, 13, 35, 93, 108, 2, 13, 34, 95, 107, 2, 13, 34, 96, 106, 2, 13,
1972  34, 101, 102, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1,
1973  13, 33, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1, 13, 33, 1, 13,
1974  34, 1, 13, 34, 1, 13, 34, 1, 13, 35, 1, 14, 35, 1, 14, 36, 1, 14, 36, 1, 14, 37,
1975  2, 15, 37, 102, 110, 2, 15, 38, 101, 112, 2, 15, 39, 100, 113, 2, 16, 40, 98, 114, 2, 16,
1976  41, 97, 115, 2, 17, 43, 96, 115, 2, 17, 44, 94, 116, 2, 18, 46, 92, 116, 2, 18, 49, 90,
1977  116, 2, 19, 52, 87, 116, 2, 19, 58, 81, 116, 1, 20, 116, 1, 21, 116, 1, 22, 116, 1, 22,
1978  115, 1, 23, 115, 1, 24, 114, 1, 25, 113, 1, 26, 112, 1, 28, 111, 1, 29, 110, 1, 30, 109,
1979  1, 32, 107, 1, 33, 106, 1, 35, 104, 1, 37, 102, 1, 39, 100, 1, 41, 97, 1, 44, 94, 1,
1980  48, 90, 1, 53, 84, 1, 65, 74, 100, 29, 160, 1, 79, 109, 1, 76, 109, 1, 75, 109, 1, 74,
1981  109, 1, 73, 109, 1, 72, 109, 1, 72, 109, 1, 72, 109, 1, 71, 109, 1, 71, 109, 1, 71, 109,
1982  1, 71, 109, 1, 72, 109, 1, 72, 109, 1, 72, 109, 1, 73, 109, 1, 74, 109, 1, 75, 109, 1,
1983  76, 109, 1, 79, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88,
1984  109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109, 1, 88, 109,
1985  1, 88, 109, 1, 88, 109, 1, 88, 109, 2, 49, 66, 88, 109, 2, 44, 71, 88, 109, 2, 41, 74,
1986  88, 109, 2, 38, 77, 88, 109, 2, 36, 79, 88, 109, 2, 34, 81, 88, 109, 2, 32, 83, 88, 109,
1987  2, 30, 85, 88, 109, 2, 29, 87, 88, 109, 1, 28, 109, 1, 26, 109, 1, 25, 109, 1, 24, 109,
1988  1, 23, 109, 1, 22, 109, 1, 21, 109, 1, 20, 109, 1, 19, 109, 1, 18, 109, 1, 18, 109, 2,
1989  17, 53, 63, 109, 2, 16, 49, 67, 109, 2, 15, 46, 70, 109, 2, 15, 44, 72, 109, 2, 14, 42,
1990  74, 109, 2, 13, 40, 76, 109, 2, 13, 39, 77, 109, 2, 12, 38, 78, 109, 2, 12, 37, 79, 109,
1991  2, 12, 36, 80, 109, 2, 11, 35, 81, 109, 2, 11, 34, 82, 109, 2, 10, 33, 83, 109, 2, 10,
1992  33, 84, 109, 2, 10, 32, 84, 109, 2, 9, 31, 85, 109, 2, 9, 31, 85, 109, 2, 9, 30, 86,
1993  109, 2, 9, 30, 86, 109, 2, 8, 30, 87, 109, 2, 8, 29, 87, 109, 2, 8, 29, 87, 109, 2,
1994  8, 29, 87, 109, 2, 8, 28, 88, 109, 2, 8, 28, 88, 109, 2, 8, 28, 88, 109, 2, 8, 28,
1995  88, 109, 2, 8, 28, 88, 109, 2, 7, 28, 88, 109, 2, 7, 28, 88, 109, 2, 7, 28, 88, 109,
1996  2, 8, 28, 88, 109, 2, 8, 28, 88, 109, 2, 8, 28, 88, 109, 2, 8, 28, 88, 109, 2, 8,
1997  28, 88, 109, 2, 8, 29, 87, 109, 2, 8, 29, 87, 109, 2, 8, 29, 87, 109, 2, 8, 30, 87,
1998  109, 2, 9, 30, 86, 109, 2, 9, 31, 85, 109, 2, 9, 31, 85, 109, 2, 9, 32, 84, 109, 2,
1999  10, 32, 84, 109, 2, 10, 33, 83, 109, 2, 11, 34, 82, 109, 2, 11, 35, 81, 109, 2, 11, 36,
2000  80, 109, 2, 12, 38, 78, 109, 2, 12, 39, 77, 109, 2, 13, 41, 75, 109, 2, 13, 43, 73, 117,
2001  2, 14, 45, 70, 121, 2, 15, 50, 66, 122, 1, 15, 123, 1, 16, 124, 1, 17, 125, 1, 18, 125,
2002  1, 19, 125, 1, 20, 126, 1, 21, 126, 1, 22, 126, 1, 23, 126, 1, 24, 125, 1, 25, 125, 1,
2003  27, 125, 1, 28, 124, 2, 30, 86, 88, 123, 2, 32, 84, 88, 122, 2, 33, 82, 88, 121, 2, 36,
2004  79, 88, 119, 1, 39, 77, 1, 42, 74, 1, 46, 69, 101, 65, 160, 1, 50, 70, 1, 46, 75, 1,
2005  42, 78, 1, 40, 81, 1, 37, 84, 1, 35, 86, 1, 33, 88, 1, 31, 90, 1, 30, 91, 1, 28,
2006  93, 1, 27, 94, 1, 26, 96, 1, 24, 97, 1, 23, 98, 1, 22, 99, 1, 21, 100, 1, 20, 101,
2007  1, 19, 102, 1, 18, 102, 1, 17, 103, 2, 17, 54, 67, 104, 2, 16, 49, 71, 104, 2, 15, 46,
2008  75, 105, 2, 14, 44, 77, 106, 2, 14, 42, 79, 106, 2, 13, 41, 80, 107, 2, 13, 39, 82, 107,
2009  2, 12, 38, 83, 108, 2, 12, 37, 84, 108, 2, 11, 36, 85, 109, 2, 11, 35, 86, 109, 2, 11,
2010  34, 87, 110, 2, 10, 34, 87, 110, 2, 10, 33, 88, 110, 2, 10, 32, 89, 111, 2, 9, 32, 89,
2011  111, 2, 9, 31, 90, 111, 1, 9, 112, 1, 9, 112, 1, 9, 112, 1, 8, 112, 1, 8, 112, 1,
2012  8, 113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 8,
2013  113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 8, 113, 1, 9, 113,
2014  1, 9, 113, 1, 9, 30, 1, 9, 31, 1, 9, 31, 1, 10, 32, 1, 10, 32, 1, 10, 33, 1,
2015  11, 34, 1, 11, 35, 1, 11, 36, 1, 12, 37, 2, 12, 38, 102, 104, 2, 13, 40, 96, 108, 2,
2016  13, 41, 92, 109, 2, 14, 43, 88, 110, 2, 15, 45, 84, 111, 2, 15, 49, 79, 112, 2, 16, 53,
2017  72, 112, 1, 17, 113, 1, 18, 113, 1, 18, 113, 1, 19, 113, 1, 20, 113, 1, 21, 113, 1, 22,
2018  113, 1, 23, 112, 1, 24, 111, 1, 26, 111, 1, 27, 110, 1, 28, 108, 1, 30, 106, 1, 32, 104,
2019  1, 34, 101, 1, 36, 98, 1, 38, 94, 1, 41, 89, 1, 44, 84, 1, 49, 77, 102, 29, 157, 1,
2020  71, 91, 1, 66, 100, 1, 63, 106, 1, 60, 110, 1, 58, 112, 1, 56, 114, 1, 55, 115, 1, 53,
2021  116, 1, 52, 116, 1, 51, 117, 1, 50, 117, 1, 49, 117, 1, 48, 117, 1, 47, 117, 1, 47, 117,
2022  1, 46, 117, 1, 45, 117, 1, 45, 116, 1, 44, 116, 1, 44, 115, 2, 43, 74, 85, 114, 2, 43,
2023  69, 94, 113, 2, 43, 67, 101, 111, 1, 43, 65, 1, 42, 64, 1, 42, 64, 1, 42, 63, 1, 42,
2024  63, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62,
2025  1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 30, 95, 1, 25, 101, 1, 23, 103, 1, 21, 104, 1,
2026  20, 105, 1, 20, 105, 1, 19, 106, 1, 19, 106, 1, 19, 107, 1, 18, 107, 1, 18, 107, 1, 18,
2027  107, 1, 19, 107, 1, 19, 106, 1, 19, 106, 1, 20, 105, 1, 20, 105, 1, 21, 104, 1, 22, 103,
2028  1, 24, 101, 1, 29, 97, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1,
2029  42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42,
2030  62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62,
2031  1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1,
2032  42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42,
2033  62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62,
2034  1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1, 42, 62, 1,
2035  24, 96, 1, 21, 99, 1, 20, 101, 1, 18, 102, 1, 18, 103, 1, 17, 103, 1, 17, 104, 1, 16,
2036  104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 16, 104, 1, 17, 104, 1, 17, 103,
2037  1, 18, 103, 1, 18, 102, 1, 19, 101, 1, 21, 100, 1, 23, 97, 103, 64, 200, 1, 55, 57, 1,
2038  46, 66, 1, 41, 70, 2, 38, 73, 84, 110, 2, 36, 76, 84, 115, 2, 34, 78, 84, 117, 2, 32,
2039  80, 84, 119, 2, 30, 81, 84, 120, 2, 29, 83, 84, 120, 1, 27, 121, 1, 26, 121, 1, 25, 122,
2040  1, 24, 122, 1, 23, 122, 1, 22, 122, 1, 21, 122, 1, 20, 121, 1, 19, 121, 1, 18, 120, 1,
2041  17, 120, 1, 16, 119, 2, 16, 50, 63, 118, 2, 15, 46, 66, 116, 2, 14, 44, 68, 111, 2, 14,
2042  42, 70, 105, 2, 13, 40, 72, 105, 2, 13, 39, 73, 105, 2, 12, 38, 74, 105, 2, 12, 37, 76,
2043  105, 2, 11, 36, 77, 105, 2, 11, 35, 77, 105, 2, 11, 34, 78, 105, 2, 10, 33, 79, 105, 2,
2044  10, 33, 80, 105, 2, 10, 32, 80, 105, 2, 9, 31, 81, 105, 2, 9, 31, 81, 105, 2, 9, 30,
2045  82, 105, 2, 9, 30, 82, 105, 2, 9, 30, 83, 105, 2, 8, 29, 83, 105, 2, 8, 29, 83, 105,
2046  2, 8, 29, 84, 105, 2, 8, 29, 84, 105, 2, 8, 28, 84, 105, 2, 8, 28, 84, 105, 2, 8,
2047  28, 84, 105, 2, 8, 28, 84, 105, 2, 8, 28, 84, 105, 2, 8, 28, 84, 105, 2, 8, 28, 84,
2048  105, 2, 8, 28, 84, 105, 2, 8, 28, 84, 105, 2, 8, 29, 84, 105, 2, 8, 29, 84, 105, 2,
2049  8, 29, 83, 105, 2, 8, 29, 83, 105, 2, 9, 30, 83, 105, 2, 9, 30, 82, 105, 2, 9, 31,
2050  82, 105, 2, 9, 31, 81, 105, 2, 9, 32, 81, 105, 2, 10, 32, 80, 105, 2, 10, 33, 80, 105,
2051  2, 10, 34, 79, 105, 2, 11, 34, 78, 105, 2, 11, 35, 77, 105, 2, 12, 36, 76, 105, 2, 12,
2052  37, 75, 105, 2, 12, 38, 74, 105, 2, 13, 40, 73, 105, 2, 13, 41, 71, 105, 2, 14, 43, 69,
2053  105, 2, 15, 45, 68, 105, 2, 15, 48, 65, 105, 2, 16, 51, 61, 105, 1, 17, 105, 1, 17, 105,
2054  1, 18, 105, 1, 19, 105, 1, 20, 105, 1, 21, 105, 1, 22, 105, 1, 23, 105, 1, 24, 105, 1,
2055  25, 105, 1, 26, 105, 1, 28, 105, 2, 29, 83, 84, 105, 2, 31, 81, 84, 105, 2, 32, 79, 84,
2056  105, 2, 34, 77, 84, 105, 2, 37, 75, 84, 105, 2, 39, 72, 84, 105, 2, 42, 69, 84, 105, 2,
2057  47, 65, 84, 105, 1, 84, 105, 1, 84, 105, 1, 84, 105, 1, 84, 105, 1, 84, 105, 1, 84, 104,
2058  1, 84, 104, 1, 83, 104, 1, 83, 104, 1, 83, 104, 1, 82, 104, 1, 82, 104, 1, 81, 103, 1,
2059  80, 103, 1, 79, 103, 1, 78, 102, 1, 76, 102, 1, 74, 101, 1, 71, 101, 1, 39, 101, 1, 35,
2060  100, 1, 33, 99, 1, 32, 99, 1, 31, 98, 1, 30, 97, 1, 30, 96, 1, 29, 95, 1, 29, 95,
2061  1, 29, 93, 1, 29, 92, 1, 29, 91, 1, 29, 90, 1, 29, 88, 1, 30, 87, 1, 30, 85, 1,
2062  31, 83, 1, 32, 81, 1, 33, 78, 1, 35, 75, 1, 40, 67, 104, 29, 157, 1, 12, 41, 1, 9,
2063  41, 1, 7, 41, 1, 6, 41, 1, 5, 41, 1, 5, 41, 1, 4, 41, 1, 4, 41, 1, 4, 41,
2064  1, 4, 41, 1, 4, 41, 1, 4, 41, 1, 4, 41, 1, 4, 41, 1, 5, 41, 1, 5, 41, 1,
2065  6, 41, 1, 7, 41, 1, 9, 41, 1, 11, 41, 1, 21, 41, 1, 21, 41, 1, 21, 41, 1, 21,
2066  41, 1, 21, 41, 1, 21, 41, 1, 21, 41, 1, 21, 41, 1, 21, 41, 1, 21, 41, 1, 21, 41,
2067  1, 21, 41, 1, 21, 41, 1, 21, 41, 1, 21, 41, 1, 21, 41, 2, 21, 41, 59, 76, 2, 21,
2068  41, 54, 81, 2, 21, 41, 51, 84, 2, 21, 41, 49, 86, 2, 21, 41, 46, 88, 2, 21, 41, 44,
2069  90, 2, 21, 41, 42, 91, 1, 21, 93, 1, 21, 94, 1, 21, 95, 1, 21, 96, 1, 21, 97, 1,
2070  21, 98, 1, 21, 99, 1, 21, 99, 1, 21, 100, 1, 21, 101, 1, 21, 101, 1, 21, 102, 1, 21,
2071  102, 2, 21, 62, 72, 102, 2, 21, 58, 76, 103, 2, 21, 56, 78, 103, 2, 21, 54, 80, 104, 2,
2072  21, 52, 81, 104, 2, 21, 51, 82, 104, 2, 21, 49, 83, 104, 2, 21, 48, 83, 104, 2, 21, 47,
2073  83, 105, 2, 21, 46, 84, 105, 2, 21, 45, 84, 105, 2, 21, 44, 84, 105, 2, 21, 43, 84, 105,
2074  2, 21, 42, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21,
2075  41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84,
2076  105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2,
2077  21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41,
2078  84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105,
2079  2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21,
2080  41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84,
2081  105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2,
2082  21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 21, 41, 84, 105, 2, 13, 48,
2083  77, 112, 2, 11, 51, 74, 115, 2, 9, 53, 73, 116, 2, 8, 54, 72, 117, 2, 8, 54, 71, 118,
2084  2, 7, 55, 71, 119, 2, 7, 55, 70, 119, 2, 6, 56, 70, 119, 2, 6, 56, 70, 119, 2, 6,
2085  56, 70, 120, 2, 6, 56, 70, 120, 2, 6, 56, 70, 120, 2, 6, 56, 70, 119, 2, 6, 56, 70,
2086  119, 2, 7, 55, 71, 119, 2, 7, 55, 71, 118, 2, 8, 54, 72, 117, 2, 9, 53, 73, 116, 2,
2087  11, 51, 74, 115, 2, 13, 49, 77, 113, 105, 29, 157, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1,
2088  45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45,
2089  69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69, 1, 45, 69,
2090  1, 45, 69, 1, 45, 69, 1, 45, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2091  0, 0, 0, 0, 1, 33, 72, 1, 28, 72, 1, 26, 72, 1, 25, 72, 1, 24, 72, 1, 23, 72,
2092  1, 23, 72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1,
2093  22, 72, 1, 23, 72, 1, 23, 72, 1, 24, 72, 1, 25, 72, 1, 26, 72, 1, 28, 72, 1, 32,
2094  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2095  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2096  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2097  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2098  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2099  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2100  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 22, 102, 1, 19, 105,
2101  1, 18, 106, 1, 16, 108, 1, 16, 108, 1, 15, 109, 1, 15, 109, 1, 14, 110, 1, 14, 110, 1,
2102  14, 110, 1, 14, 110, 1, 14, 110, 1, 14, 110, 1, 15, 109, 1, 15, 109, 1, 15, 109, 1, 16,
2103  108, 1, 17, 107, 1, 19, 105, 1, 21, 103, 106, 29, 200, 1, 58, 82, 1, 58, 82, 1, 58, 82,
2104  1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1,
2105  58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 1, 58,
2106  82, 1, 58, 82, 1, 58, 82, 1, 58, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2107  0, 0, 0, 0, 0, 1, 31, 94, 1, 25, 94, 1, 23, 94, 1, 22, 94, 1, 21, 94, 1, 21,
2108  94, 1, 20, 94, 1, 20, 94, 1, 19, 94, 1, 19, 94, 1, 19, 94, 1, 19, 94, 1, 19, 94,
2109  1, 20, 94, 1, 20, 94, 1, 21, 94, 1, 21, 94, 1, 22, 94, 1, 23, 94, 1, 25, 94, 1,
2110  29, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74,
2111  94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94,
2112  1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1,
2113  74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74,
2114  94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94,
2115  1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1,
2116  74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74,
2117  94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94,
2118  1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1,
2119  74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74,
2120  94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 74, 94, 1, 73, 94,
2121  1, 73, 94, 1, 72, 94, 1, 72, 94, 1, 71, 93, 1, 71, 93, 1, 70, 93, 1, 69, 92, 1,
2122  67, 92, 1, 66, 92, 1, 64, 91, 1, 61, 91, 1, 29, 90, 1, 25, 90, 1, 23, 89, 1, 21,
2123  88, 1, 21, 88, 1, 20, 87, 1, 19, 86, 1, 19, 85, 1, 19, 84, 1, 19, 83, 1, 19, 82,
2124  1, 19, 81, 1, 19, 80, 1, 19, 78, 1, 19, 77, 1, 20, 75, 1, 21, 73, 1, 22, 71, 1,
2125  23, 68, 1, 25, 65, 1, 30, 57, 107, 29, 157, 1, 16, 45, 1, 13, 45, 1, 12, 45, 1, 11,
2126  45, 1, 10, 45, 1, 9, 45, 1, 9, 45, 1, 8, 45, 1, 8, 45, 1, 8, 45, 1, 8, 45,
2127  1, 8, 45, 1, 8, 45, 1, 9, 45, 1, 9, 45, 1, 10, 45, 1, 10, 45, 1, 11, 45, 1,
2128  13, 45, 1, 15, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25,
2129  45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45,
2130  1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 1, 25, 45, 2, 25, 45, 70, 98, 2, 25,
2131  45, 65, 103, 2, 25, 45, 63, 105, 2, 25, 45, 62, 106, 2, 25, 45, 61, 107, 2, 25, 45, 60,
2132  108, 2, 25, 45, 60, 108, 2, 25, 45, 59, 108, 2, 25, 45, 59, 109, 2, 25, 45, 59, 109, 2,
2133  25, 45, 59, 109, 2, 25, 45, 59, 109, 2, 25, 45, 59, 109, 2, 25, 45, 59, 108, 2, 25, 45,
2134  60, 108, 2, 25, 45, 60, 108, 2, 25, 45, 61, 107, 2, 25, 45, 61, 106, 2, 25, 45, 60, 105,
2135  2, 25, 45, 59, 103, 2, 25, 45, 58, 99, 2, 25, 45, 56, 89, 2, 25, 45, 55, 88, 2, 25,
2136  45, 54, 86, 2, 25, 45, 53, 85, 2, 25, 45, 51, 84, 2, 25, 45, 50, 83, 2, 25, 45, 49,
2137  81, 2, 25, 45, 48, 80, 2, 25, 45, 46, 79, 1, 25, 78, 1, 25, 76, 1, 25, 75, 1, 25,
2138  74, 1, 25, 73, 1, 25, 72, 1, 25, 70, 1, 25, 69, 1, 25, 68, 1, 25, 67, 1, 25, 65,
2139  1, 25, 66, 1, 25, 67, 1, 25, 68, 1, 25, 69, 1, 25, 71, 1, 25, 72, 1, 25, 73, 1,
2140  25, 74, 1, 25, 75, 1, 25, 76, 1, 25, 77, 1, 25, 79, 1, 25, 80, 2, 25, 48, 50, 81,
2141  2, 25, 47, 52, 82, 2, 25, 45, 53, 83, 2, 25, 45, 54, 84, 2, 25, 45, 55, 85, 2, 25,
2142  45, 56, 86, 2, 25, 45, 57, 88, 2, 25, 45, 58, 89, 2, 25, 45, 59, 90, 2, 25, 45, 61,
2143  91, 2, 25, 45, 62, 92, 2, 25, 45, 63, 93, 2, 25, 45, 64, 94, 2, 25, 45, 65, 95, 2,
2144  25, 45, 66, 97, 2, 25, 45, 67, 98, 2, 16, 45, 68, 109, 2, 13, 45, 70, 113, 2, 12, 45,
2145  71, 114, 2, 11, 45, 70, 115, 2, 10, 45, 69, 116, 2, 9, 45, 69, 117, 2, 9, 45, 68, 117,
2146  2, 8, 45, 68, 117, 2, 8, 45, 67, 118, 2, 8, 45, 67, 118, 2, 8, 45, 67, 118, 2, 8,
2147  45, 67, 118, 2, 8, 45, 68, 117, 2, 9, 45, 68, 117, 2, 9, 45, 68, 117, 2, 10, 45, 69,
2148  116, 2, 10, 45, 70, 115, 2, 11, 45, 70, 115, 2, 13, 45, 72, 113, 2, 15, 45, 74, 111, 108,
2149  29, 157, 1, 30, 72, 1, 27, 72, 1, 26, 72, 1, 24, 72, 1, 24, 72, 1, 23, 72, 1, 23,
2150  72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1, 22, 72, 1, 23, 72,
2151  1, 23, 72, 1, 24, 72, 1, 24, 72, 1, 25, 72, 1, 27, 72, 1, 29, 72, 1, 52, 72, 1,
2152  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2153  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2154  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2155  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2156  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2157  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2158  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2159  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2160  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2161  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2162  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2163  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 22, 102, 1,
2164  19, 105, 1, 18, 107, 1, 17, 108, 1, 16, 108, 1, 15, 109, 1, 15, 109, 1, 14, 110, 1, 14,
2165  110, 1, 14, 110, 1, 14, 110, 1, 14, 110, 1, 14, 110, 1, 15, 110, 1, 15, 109, 1, 16, 109,
2166  1, 16, 108, 1, 17, 107, 1, 19, 105, 1, 21, 103, 109, 65, 157, 2, 43, 54, 82, 95, 2, 40,
2167  57, 78, 99, 3, 9, 31, 38, 59, 76, 101, 3, 4, 31, 36, 60, 74, 103, 3, 2, 31, 35, 62,
2168  72, 104, 3, 1, 31, 34, 63, 70, 106, 3, 0, 31, 33, 64, 69, 107, 2, 0, 65, 67, 108, 1,
2169  0, 109, 1, 0, 110, 1, 0, 111, 1, 0, 111, 1, 0, 112, 1, 0, 112, 1, 0, 113, 1, 0,
2170  113, 1, 0, 114, 1, 0, 114, 1, 0, 114, 1, 1, 115, 3, 2, 43, 49, 85, 92, 115, 3, 4,
2171  41, 51, 83, 93, 115, 3, 7, 39, 52, 81, 94, 115, 3, 10, 37, 52, 80, 94, 115, 3, 10, 36,
2172  53, 79, 95, 115, 3, 10, 35, 53, 78, 95, 115, 3, 10, 34, 53, 77, 95, 116, 3, 10, 34, 53,
2173  76, 95, 116, 3, 10, 33, 53, 75, 95, 116, 3, 10, 32, 53, 75, 95, 116, 3, 10, 31, 53, 74,
2174  95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95,
2175  116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116,
2176  3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3,
2177  10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10,
2178  31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31,
2179  53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53,
2180  73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73,
2181  95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95,
2182  116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116,
2183  3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3,
2184  10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10,
2185  31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31,
2186  53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53, 73, 95, 116, 3, 10, 31, 53,
2187  73, 95, 116, 3, 6, 35, 53, 78, 95, 120, 3, 3, 38, 53, 81, 95, 123, 3, 1, 40, 53, 82,
2188  95, 125, 3, 0, 41, 53, 83, 95, 125, 3, 0, 42, 53, 84, 95, 126, 3, 0, 42, 53, 85, 95,
2189  127, 3, 0, 43, 53, 85, 95, 127, 3, 0, 43, 53, 85, 95, 128, 3, 0, 43, 53, 86, 95, 128,
2190  3, 0, 43, 53, 86, 95, 128, 3, 0, 43, 53, 86, 95, 128, 3, 0, 43, 53, 86, 95, 128, 3,
2191  0, 43, 53, 86, 95, 128, 3, 0, 43, 53, 85, 95, 128, 3, 0, 42, 53, 85, 95, 127, 3, 0,
2192  42, 53, 84, 95, 126, 3, 0, 41, 53, 84, 95, 126, 3, 1, 40, 53, 83, 95, 125, 3, 3, 39,
2193  53, 81, 95, 123, 3, 5, 36, 53, 79, 95, 121, 110, 65, 157, 1, 60, 77, 1, 56, 81, 2, 20,
2194  42, 53, 84, 2, 15, 42, 51, 86, 2, 13, 42, 49, 88, 2, 12, 42, 47, 90, 2, 11, 42, 45,
2195  92, 2, 10, 42, 44, 93, 2, 9, 42, 43, 94, 1, 9, 95, 1, 9, 96, 1, 9, 97, 1, 9,
2196  98, 1, 9, 99, 1, 9, 99, 1, 9, 100, 1, 9, 101, 1, 10, 101, 1, 11, 102, 1, 11, 102,
2197  2, 13, 62, 73, 103, 2, 15, 58, 77, 103, 2, 18, 56, 79, 103, 2, 21, 54, 80, 104, 2, 21,
2198  52, 82, 104, 2, 21, 51, 83, 104, 2, 21, 50, 83, 104, 2, 21, 48, 84, 105, 2, 21, 47, 84,
2199  105, 2, 21, 46, 84, 105, 2, 21, 45, 85, 105, 2, 21, 44, 85, 105, 2, 21, 43, 85, 105, 2,
2200  21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42,
2201  85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105,
2202  2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21,
2203  42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85,
2204  105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2,
2205  21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42,
2206  85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105,
2207  2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21,
2208  42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 14, 49, 80,
2209  110, 2, 11, 52, 77, 113, 2, 10, 53, 76, 114, 2, 9, 54, 75, 115, 2, 8, 55, 74, 116, 2,
2210  7, 55, 73, 117, 2, 7, 56, 73, 117, 2, 7, 56, 73, 117, 2, 6, 56, 72, 117, 2, 6, 56,
2211  72, 118, 2, 6, 56, 72, 118, 2, 6, 56, 72, 118, 2, 7, 56, 73, 117, 2, 7, 56, 73, 117,
2212  2, 7, 56, 73, 117, 2, 8, 55, 74, 116, 2, 9, 54, 75, 115, 2, 10, 53, 75, 114, 2, 11,
2213  52, 77, 113, 2, 13, 49, 79, 111, 111, 65, 160, 1, 54, 71, 1, 49, 76, 1, 45, 79, 1, 42,
2214  82, 1, 40, 84, 1, 38, 86, 1, 36, 89, 1, 34, 90, 1, 33, 92, 1, 31, 93, 1, 29, 95,
2215  1, 28, 96, 1, 27, 97, 1, 26, 99, 1, 25, 100, 1, 24, 101, 1, 23, 102, 1, 22, 103, 1,
2216  21, 104, 1, 20, 104, 2, 19, 56, 68, 105, 2, 19, 52, 72, 106, 2, 18, 49, 76, 106, 2, 17,
2217  47, 78, 107, 2, 17, 45, 79, 108, 2, 16, 43, 81, 108, 2, 16, 42, 83, 109, 2, 15, 41, 84,
2218  109, 2, 15, 40, 85, 110, 2, 14, 39, 86, 110, 2, 14, 38, 87, 111, 2, 13, 37, 88, 111, 2,
2219  13, 36, 88, 112, 2, 13, 35, 89, 112, 2, 12, 35, 90, 112, 2, 12, 34, 91, 113, 2, 12, 33,
2220  91, 113, 2, 11, 33, 92, 113, 2, 11, 32, 92, 113, 2, 11, 32, 93, 114, 2, 11, 32, 93, 114,
2221  2, 11, 31, 93, 114, 2, 10, 31, 94, 114, 2, 10, 31, 94, 114, 2, 10, 31, 94, 114, 2, 10,
2222  30, 94, 115, 2, 10, 30, 94, 115, 2, 10, 30, 94, 115, 2, 10, 30, 94, 115, 2, 10, 30, 94,
2223  115, 2, 10, 30, 94, 115, 2, 10, 30, 94, 115, 2, 10, 30, 94, 115, 2, 10, 31, 94, 114, 2,
2224  10, 31, 94, 114, 2, 10, 31, 93, 114, 2, 11, 32, 93, 114, 2, 11, 32, 93, 114, 2, 11, 32,
2225  92, 114, 2, 11, 33, 91, 113, 2, 11, 34, 91, 113, 2, 12, 34, 90, 113, 2, 12, 35, 89, 112,
2226  2, 13, 36, 89, 112, 2, 13, 37, 88, 112, 2, 13, 38, 87, 111, 2, 14, 39, 86, 111, 2, 14,
2227  40, 85, 110, 2, 15, 41, 83, 110, 2, 15, 43, 82, 109, 2, 16, 44, 80, 109, 2, 16, 46, 78,
2228  108, 2, 17, 48, 76, 108, 2, 18, 51, 74, 107, 2, 18, 55, 70, 106, 1, 19, 106, 1, 20, 105,
2229  1, 21, 104, 1, 22, 103, 1, 23, 102, 1, 24, 101, 1, 25, 100, 1, 26, 99, 1, 27, 98, 1,
2230  28, 96, 1, 30, 95, 1, 31, 93, 1, 33, 92, 1, 35, 90, 1, 37, 88, 1, 39, 86, 1, 41,
2231  83, 1, 44, 80, 1, 47, 77, 1, 52, 73, 112, 65, 200, 1, 59, 76, 1, 54, 81, 2, 11, 37,
2232  51, 84, 2, 6, 37, 48, 87, 2, 4, 37, 46, 89, 2, 2, 37, 43, 91, 2, 2, 37, 42, 93,
2233  2, 1, 37, 40, 95, 2, 0, 37, 38, 96, 1, 0, 98, 1, 0, 99, 1, 0, 100, 1, 0, 101,
2234  1, 0, 102, 1, 0, 103, 1, 0, 104, 1, 0, 105, 1, 1, 106, 1, 1, 107, 1, 2, 108, 2,
2235  4, 62, 73, 109, 2, 6, 57, 77, 109, 2, 10, 54, 80, 110, 2, 17, 52, 82, 111, 2, 17, 51,
2236  83, 111, 2, 17, 49, 85, 112, 2, 17, 48, 86, 112, 2, 17, 47, 87, 113, 2, 17, 46, 88, 113,
2237  2, 17, 45, 90, 114, 2, 17, 44, 90, 114, 2, 17, 43, 91, 115, 2, 17, 42, 92, 115, 2, 17,
2238  41, 93, 115, 2, 17, 41, 93, 116, 2, 17, 40, 94, 116, 2, 17, 40, 94, 116, 2, 17, 39, 95,
2239  116, 2, 17, 39, 95, 117, 2, 17, 38, 96, 117, 2, 17, 38, 96, 117, 2, 17, 38, 96, 117, 2,
2240  17, 37, 97, 117, 2, 17, 37, 97, 117, 2, 17, 37, 97, 117, 2, 17, 37, 97, 117, 2, 17, 37,
2241  97, 117, 2, 17, 37, 97, 117, 2, 17, 37, 97, 117, 2, 17, 37, 97, 117, 2, 17, 37, 96, 117,
2242  2, 17, 38, 96, 117, 2, 17, 38, 96, 117, 2, 17, 39, 95, 117, 2, 17, 39, 95, 117, 2, 17,
2243  40, 94, 116, 2, 17, 40, 93, 116, 2, 17, 41, 93, 116, 2, 17, 42, 92, 115, 2, 17, 43, 91,
2244  115, 2, 17, 44, 90, 115, 2, 17, 45, 89, 114, 2, 17, 46, 88, 114, 2, 17, 47, 87, 113, 2,
2245  17, 49, 85, 113, 2, 17, 50, 84, 112, 2, 17, 52, 82, 112, 2, 17, 54, 80, 111, 2, 17, 57,
2246  77, 111, 2, 17, 62, 72, 110, 1, 17, 109, 1, 17, 108, 1, 17, 107, 1, 17, 106, 1, 17, 106,
2247  1, 17, 105, 1, 17, 103, 1, 17, 102, 1, 17, 101, 1, 17, 100, 1, 17, 98, 2, 17, 37, 38,
2248  97, 2, 17, 37, 40, 95, 2, 17, 37, 41, 93, 2, 17, 37, 43, 92, 2, 17, 37, 46, 89, 2,
2249  17, 37, 48, 87, 2, 17, 37, 51, 85, 2, 17, 37, 55, 80, 2, 17, 37, 59, 76, 1, 17, 37,
2250  1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1,
2251  17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17,
2252  37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37, 1, 17, 37,
2253  1, 17, 37, 1, 10, 52, 1, 6, 57, 1, 4, 59, 1, 2, 60, 1, 1, 61, 1, 1, 61, 1,
2254  0, 62, 1, 0, 62, 1, 0, 62, 1, 0, 63, 1, 0, 63, 1, 0, 63, 1, 0, 62, 1, 0,
2255  62, 1, 0, 62, 1, 1, 61, 1, 1, 61, 1, 2, 60, 1, 4, 59, 1, 6, 56, 1, 11, 51,
2256  113, 65, 200, 1, 49, 67, 1, 45, 72, 2, 41, 75, 89, 115, 2, 39, 78, 89, 120, 2, 37, 80,
2257  89, 122, 2, 34, 82, 89, 123, 2, 33, 84, 89, 124, 2, 31, 86, 89, 125, 2, 30, 87, 89, 125,
2258  1, 28, 126, 1, 27, 126, 1, 26, 126, 1, 25, 126, 1, 23, 126, 1, 22, 126, 1, 21, 126, 1,
2259  21, 125, 1, 20, 125, 1, 19, 124, 1, 18, 123, 2, 17, 54, 65, 122, 2, 16, 49, 69, 120, 2,
2260  16, 46, 71, 116, 2, 15, 44, 73, 109, 2, 14, 43, 75, 109, 2, 14, 41, 77, 109, 2, 13, 39,
2261  78, 109, 2, 13, 38, 79, 109, 2, 12, 38, 80, 109, 2, 12, 37, 81, 109, 2, 11, 36, 82, 109,
2262  2, 11, 35, 83, 109, 2, 11, 34, 84, 109, 2, 10, 33, 84, 109, 2, 10, 33, 85, 109, 2, 10,
2263  32, 86, 109, 2, 10, 31, 86, 109, 2, 9, 31, 86, 109, 2, 9, 30, 87, 109, 2, 9, 30, 87,
2264  109, 2, 9, 30, 88, 109, 2, 9, 29, 88, 109, 2, 9, 29, 88, 109, 2, 9, 29, 89, 109, 2,
2265  8, 29, 89, 109, 2, 8, 29, 89, 109, 2, 8, 29, 89, 109, 2, 8, 29, 89, 109, 2, 8, 29,
2266  89, 109, 2, 9, 29, 88, 109, 2, 9, 29, 88, 109, 2, 9, 30, 88, 109, 2, 9, 30, 88, 109,
2267  2, 9, 30, 87, 109, 2, 9, 31, 87, 109, 2, 9, 32, 86, 109, 2, 10, 32, 85, 109, 2, 10,
2268  33, 85, 109, 2, 10, 34, 84, 109, 2, 11, 35, 83, 109, 2, 11, 36, 82, 109, 2, 11, 37, 81,
2269  109, 2, 12, 38, 80, 109, 2, 12, 39, 79, 109, 2, 13, 40, 77, 109, 2, 13, 42, 76, 109, 2,
2270  14, 44, 74, 109, 2, 15, 46, 72, 109, 2, 15, 49, 69, 109, 2, 16, 54, 63, 109, 1, 17, 109,
2271  1, 17, 109, 1, 18, 109, 1, 19, 109, 1, 20, 109, 1, 21, 109, 1, 22, 109, 1, 24, 109, 1,
2272  25, 109, 1, 26, 109, 1, 28, 109, 2, 29, 88, 89, 109, 2, 31, 86, 89, 109, 2, 32, 84, 89,
2273  109, 2, 34, 82, 89, 109, 2, 36, 80, 89, 109, 2, 39, 77, 89, 109, 2, 41, 75, 89, 109, 2,
2274  45, 71, 89, 109, 2, 49, 67, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1,
2275  89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89,
2276  109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109,
2277  1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 89, 109, 1, 73, 116, 1, 69, 120, 1,
2278  67, 122, 1, 66, 123, 1, 65, 124, 1, 64, 125, 1, 64, 125, 1, 64, 126, 1, 63, 126, 1, 63,
2279  126, 1, 63, 126, 1, 63, 126, 1, 63, 126, 1, 64, 126, 1, 64, 125, 1, 65, 125, 1, 65, 124,
2280  1, 66, 123, 1, 67, 122, 1, 69, 120, 1, 74, 115, 114, 65, 157, 1, 85, 98, 1, 81, 101, 2,
2281  28, 58, 79, 103, 2, 23, 58, 77, 106, 2, 21, 58, 74, 107, 2, 20, 58, 73, 109, 2, 19, 58,
2282  71, 110, 2, 18, 58, 69, 111, 2, 17, 58, 68, 113, 2, 17, 58, 66, 114, 2, 17, 58, 65, 115,
2283  2, 17, 58, 63, 115, 2, 17, 58, 62, 116, 2, 17, 58, 60, 116, 2, 17, 58, 59, 117, 1, 17,
2284  117, 1, 17, 117, 1, 18, 117, 1, 19, 117, 1, 19, 117, 2, 21, 89, 94, 117, 2, 23, 86, 96,
2285  116, 2, 27, 84, 98, 116, 2, 38, 82, 99, 115, 2, 38, 80, 100, 114, 2, 38, 79, 101, 113, 2,
2286  38, 77, 103, 111, 2, 38, 76, 107, 108, 1, 38, 74, 1, 38, 73, 1, 38, 72, 1, 38, 70, 1,
2287  38, 69, 1, 38, 68, 1, 38, 66, 1, 38, 65, 1, 38, 64, 1, 38, 63, 1, 38, 61, 1, 38,
2288  60, 1, 38, 59, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58,
2289  1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1,
2290  38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38,
2291  58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 38, 58,
2292  1, 38, 58, 1, 38, 58, 1, 38, 58, 1, 20, 92, 1, 17, 95, 1, 16, 97, 1, 14, 98, 1,
2293  14, 99, 1, 13, 99, 1, 13, 100, 1, 12, 100, 1, 12, 100, 1, 12, 100, 1, 12, 100, 1, 12,
2294  100, 1, 12, 100, 1, 13, 100, 1, 13, 99, 1, 13, 99, 1, 14, 98, 1, 15, 97, 1, 17, 96,
2295  1, 19, 93, 115, 65, 160, 1, 52, 72, 1, 47, 77, 2, 43, 81, 94, 96, 2, 41, 84, 91, 99,
2296  2, 38, 86, 89, 100, 1, 36, 101, 1, 34, 102, 1, 33, 103, 1, 31, 103, 1, 30, 103, 1, 28,
2297  104, 1, 27, 104, 1, 26, 104, 1, 25, 104, 1, 25, 104, 1, 24, 104, 1, 23, 104, 1, 23, 104,
2298  1, 22, 104, 1, 22, 104, 2, 21, 55, 69, 104, 2, 21, 50, 73, 104, 2, 21, 47, 76, 104, 2,
2299  21, 44, 79, 104, 2, 21, 43, 81, 104, 2, 20, 41, 83, 104, 2, 20, 41, 84, 104, 2, 20, 40,
2300  84, 104, 2, 20, 41, 85, 103, 2, 20, 41, 85, 103, 2, 20, 42, 86, 102, 2, 21, 44, 87, 101,
2301  2, 21, 46, 88, 100, 2, 21, 49, 90, 98, 1, 21, 55, 1, 22, 62, 1, 22, 68, 1, 22, 74,
2302  1, 23, 79, 1, 23, 83, 1, 24, 86, 1, 25, 89, 1, 26, 91, 1, 26, 93, 1, 27, 95, 1,
2303  28, 96, 1, 30, 98, 1, 31, 99, 1, 33, 100, 1, 35, 101, 1, 37, 102, 1, 40, 103, 1, 44,
2304  104, 1, 48, 104, 1, 54, 105, 1, 62, 106, 1, 69, 106, 1, 75, 106, 2, 24, 29, 79, 107, 2,
2305  21, 31, 82, 107, 2, 20, 33, 84, 108, 2, 19, 34, 85, 108, 2, 18, 34, 86, 108, 2, 18, 35,
2306  87, 108, 2, 17, 35, 88, 108, 2, 17, 36, 88, 108, 2, 17, 36, 88, 109, 2, 17, 37, 88, 108,
2307  2, 16, 38, 87, 108, 2, 16, 40, 86, 108, 2, 16, 41, 85, 108, 2, 16, 43, 83, 108, 2, 16,
2308  46, 81, 108, 2, 16, 49, 77, 107, 2, 16, 53, 73, 107, 1, 16, 107, 1, 16, 106, 1, 16, 106,
2309  1, 16, 105, 1, 16, 104, 1, 16, 104, 1, 16, 103, 1, 16, 102, 1, 17, 101, 1, 17, 99, 1,
2310  17, 98, 1, 18, 96, 1, 18, 95, 1, 19, 93, 1, 20, 92, 2, 21, 32, 36, 89, 2, 23, 30,
2311  38, 87, 1, 41, 84, 1, 45, 80, 1, 50, 75, 116, 36, 160, 1, 43, 51, 1, 41, 53, 1, 40,
2312  54, 1, 39, 55, 1, 38, 56, 1, 38, 56, 1, 38, 56, 1, 37, 56, 1, 37, 57, 1, 37, 57,
2313  1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1,
2314  37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37,
2315  57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 27, 97,
2316  1, 22, 102, 1, 20, 104, 1, 19, 105, 1, 18, 106, 1, 17, 107, 1, 17, 107, 1, 16, 108, 1,
2317  16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 16, 108, 1, 17, 107, 1, 17,
2318  107, 1, 18, 106, 1, 19, 105, 1, 20, 104, 1, 22, 102, 1, 26, 98, 1, 37, 57, 1, 37, 57,
2319  1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1,
2320  37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37,
2321  57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57,
2322  1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1,
2323  37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37,
2324  57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 1, 37, 57, 2, 37, 57, 109, 114, 2, 37, 57, 106,
2325  116, 2, 37, 58, 104, 117, 2, 37, 58, 101, 118, 2, 37, 59, 99, 119, 2, 37, 59, 97, 120, 2,
2326  37, 61, 93, 120, 2, 38, 63, 90, 121, 2, 38, 66, 84, 121, 1, 38, 121, 1, 39, 121, 1, 39,
2327  121, 1, 39, 121, 1, 40, 120, 1, 41, 120, 1, 41, 119, 1, 42, 118, 1, 43, 117, 1, 43, 116,
2328  1, 44, 115, 1, 45, 113, 1, 46, 111, 1, 48, 108, 1, 49, 106, 1, 51, 102, 1, 53, 99, 1,
2329  56, 95, 1, 58, 91, 1, 63, 86, 117, 67, 160, 2, 16, 42, 75, 105, 2, 10, 42, 70, 105, 2,
2330  8, 42, 68, 105, 2, 7, 42, 67, 105, 2, 6, 42, 66, 105, 2, 6, 42, 65, 105, 2, 5, 42,
2331  65, 105, 2, 5, 42, 64, 105, 2, 4, 42, 64, 105, 2, 4, 42, 64, 105, 2, 4, 42, 64, 105,
2332  2, 4, 42, 64, 105, 2, 4, 42, 64, 105, 2, 5, 42, 64, 105, 2, 5, 42, 65, 105, 2, 6,
2333  42, 65, 105, 2, 6, 42, 66, 105, 2, 7, 42, 67, 105, 2, 8, 42, 68, 105, 2, 10, 42, 70,
2334  105, 2, 14, 42, 74, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2,
2335  21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42,
2336  85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105,
2337  2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21,
2338  42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85,
2339  105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2,
2340  21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42,
2341  85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105,
2342  2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21,
2343  42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 85, 105, 2, 21, 42, 84, 105, 2, 21, 42, 82,
2344  105, 2, 21, 42, 81, 105, 2, 21, 42, 79, 105, 2, 21, 42, 77, 105, 2, 21, 43, 75, 105, 2,
2345  21, 43, 73, 105, 2, 22, 44, 71, 105, 2, 22, 45, 68, 110, 2, 22, 46, 65, 113, 2, 22, 49,
2346  61, 114, 1, 23, 115, 1, 23, 116, 1, 23, 117, 1, 24, 117, 1, 24, 117, 1, 25, 118, 1, 26,
2347  118, 1, 26, 118, 1, 27, 118, 1, 28, 117, 1, 29, 117, 1, 30, 117, 1, 31, 116, 2, 32, 83,
2348  85, 115, 2, 33, 80, 85, 115, 2, 35, 78, 85, 113, 2, 36, 75, 85, 111, 1, 38, 72, 1, 41,
2349  68, 1, 44, 63, 118, 67, 157, 2, 13, 44, 80, 112, 2, 7, 49, 75, 117, 2, 5, 51, 73, 119,
2350  2, 4, 53, 72, 121, 2, 3, 54, 71, 122, 2, 3, 54, 70, 122, 2, 2, 55, 70, 123, 2, 2,
2351  55, 69, 123, 2, 1, 55, 69, 124, 2, 1, 55, 69, 124, 2, 1, 55, 69, 124, 2, 1, 55, 69,
2352  124, 2, 1, 55, 69, 124, 2, 2, 55, 69, 123, 2, 2, 55, 70, 123, 2, 3, 54, 70, 122, 2,
2353  3, 54, 71, 122, 2, 4, 53, 71, 121, 2, 5, 52, 73, 120, 2, 7, 50, 74, 118, 2, 11, 45,
2354  79, 113, 2, 18, 41, 84, 106, 2, 19, 41, 83, 106, 2, 19, 42, 83, 105, 2, 20, 42, 82, 105,
2355  2, 20, 43, 82, 104, 2, 21, 43, 81, 104, 2, 21, 44, 81, 103, 2, 21, 44, 80, 103, 2, 22,
2356  45, 80, 102, 2, 22, 45, 79, 102, 2, 23, 45, 79, 101, 2, 23, 46, 78, 101, 2, 24, 46, 78,
2357  100, 2, 24, 47, 77, 100, 2, 25, 47, 77, 100, 2, 25, 48, 76, 99, 2, 26, 48, 76, 99, 2,
2358  26, 49, 75, 98, 2, 27, 49, 75, 98, 2, 27, 50, 74, 97, 2, 28, 50, 74, 97, 2, 28, 51,
2359  74, 96, 2, 29, 51, 73, 96, 2, 29, 52, 73, 95, 2, 30, 52, 72, 95, 2, 30, 53, 72, 94,
2360  2, 31, 53, 71, 94, 2, 31, 54, 71, 93, 2, 32, 54, 70, 93, 2, 32, 55, 70, 92, 2, 33,
2361  55, 69, 92, 2, 33, 56, 69, 91, 2, 34, 56, 68, 91, 2, 34, 57, 68, 90, 2, 35, 57, 67,
2362  90, 2, 35, 58, 67, 89, 2, 36, 58, 66, 89, 2, 36, 59, 66, 88, 2, 37, 59, 65, 88, 2,
2363  37, 60, 65, 87, 2, 38, 60, 64, 87, 2, 38, 61, 64, 86, 2, 39, 61, 63, 86, 2, 39, 62,
2364  63, 85, 1, 40, 85, 1, 40, 84, 1, 41, 84, 1, 41, 83, 1, 42, 83, 1, 42, 82, 1, 42,
2365  82, 1, 43, 81, 1, 43, 81, 1, 44, 80, 1, 44, 80, 1, 45, 80, 1, 45, 79, 1, 46, 79,
2366  1, 46, 78, 1, 47, 78, 1, 47, 77, 1, 48, 77, 1, 48, 76, 1, 49, 76, 1, 49, 75, 1,
2367  50, 75, 1, 50, 74, 1, 51, 74, 1, 51, 73, 119, 67, 157, 2, 12, 36, 88, 112, 2, 7, 41,
2368  83, 117, 2, 5, 43, 81, 119, 2, 4, 44, 80, 120, 2, 3, 45, 79, 121, 2, 2, 46, 78, 122,
2369  2, 2, 46, 78, 122, 2, 1, 46, 78, 123, 2, 1, 47, 77, 123, 2, 1, 47, 77, 123, 2, 1,
2370  47, 77, 123, 2, 1, 47, 77, 123, 2, 1, 47, 77, 123, 2, 1, 46, 78, 123, 2, 2, 46, 78,
2371  123, 2, 2, 46, 78, 122, 2, 3, 45, 79, 121, 2, 4, 44, 80, 121, 2, 5, 43, 81, 119, 2,
2372  7, 41, 82, 117, 3, 11, 37, 53, 71, 87, 113, 3, 12, 33, 53, 72, 92, 112, 3, 13, 33, 52,
2373  72, 91, 112, 3, 13, 33, 52, 73, 91, 112, 3, 13, 34, 51, 73, 91, 112, 3, 13, 34, 51, 73,
2374  91, 111, 3, 13, 34, 51, 74, 90, 111, 3, 14, 34, 50, 74, 90, 111, 3, 14, 35, 50, 74, 90,
2375  111, 3, 14, 35, 49, 75, 90, 110, 3, 14, 35, 49, 75, 89, 110, 3, 15, 35, 49, 76, 89, 110,
2376  3, 15, 36, 48, 76, 89, 110, 3, 15, 36, 48, 76, 89, 109, 3, 15, 36, 48, 77, 88, 109, 3,
2377  16, 36, 47, 77, 88, 109, 3, 16, 37, 47, 78, 88, 109, 3, 16, 37, 46, 78, 88, 108, 3, 16,
2378  37, 46, 78, 87, 108, 3, 17, 37, 46, 79, 87, 108, 3, 17, 38, 45, 79, 87, 108, 3, 17, 38,
2379  45, 79, 87, 108, 3, 17, 38, 45, 80, 86, 107, 3, 18, 38, 44, 80, 86, 107, 3, 18, 39, 44,
2380  81, 86, 107, 3, 18, 39, 43, 81, 86, 107, 3, 18, 39, 43, 81, 85, 106, 3, 19, 39, 43, 82,
2381  85, 106, 3, 19, 40, 42, 82, 85, 106, 3, 19, 40, 42, 83, 85, 106, 3, 19, 40, 41, 83, 84,
2382  105, 3, 20, 40, 41, 83, 84, 105, 2, 20, 40, 41, 105, 1, 20, 105, 2, 20, 62, 63, 104, 2,
2383  21, 61, 63, 104, 2, 21, 61, 64, 104, 2, 21, 61, 64, 104, 2, 21, 60, 64, 103, 2, 22, 60,
2384  65, 103, 2, 22, 59, 65, 103, 2, 22, 59, 66, 103, 2, 22, 59, 66, 103, 2, 23, 58, 66, 102,
2385  2, 23, 58, 67, 102, 2, 23, 57, 67, 102, 2, 23, 57, 68, 102, 2, 24, 57, 68, 101, 2, 24,
2386  56, 68, 101, 2, 24, 56, 69, 101, 2, 24, 56, 69, 101, 2, 24, 55, 70, 100, 2, 25, 55, 70,
2387  100, 2, 25, 54, 70, 100, 2, 25, 54, 71, 100, 2, 25, 54, 71, 99, 2, 26, 53, 72, 99, 2,
2388  26, 53, 72, 99, 2, 26, 53, 72, 99, 2, 26, 52, 73, 98, 2, 27, 52, 73, 98, 2, 27, 51,
2389  74, 98, 2, 27, 51, 74, 98, 2, 27, 51, 74, 97, 2, 28, 50, 75, 97, 2, 28, 50, 75, 97,
2390  2, 28, 50, 76, 97, 2, 28, 49, 76, 97, 2, 29, 49, 76, 96, 2, 29, 48, 77, 96, 120, 67,
2391  157, 2, 21, 44, 80, 103, 2, 16, 49, 75, 109, 2, 14, 51, 73, 111, 2, 12, 53, 72, 112, 2,
2392  11, 54, 71, 113, 2, 11, 54, 70, 113, 2, 10, 55, 70, 114, 2, 10, 55, 69, 114, 2, 10, 55,
2393  69, 115, 2, 9, 55, 69, 115, 2, 9, 55, 69, 115, 2, 10, 55, 69, 115, 2, 10, 55, 69, 114,
2394  2, 10, 55, 69, 114, 2, 10, 55, 70, 114, 2, 11, 54, 70, 113, 2, 11, 53, 71, 113, 2, 12,
2395  53, 72, 112, 2, 14, 52, 73, 111, 2, 15, 50, 74, 109, 2, 19, 51, 73, 105, 2, 21, 52, 72,
2396  103, 2, 22, 53, 71, 102, 2, 23, 54, 70, 101, 2, 25, 56, 69, 100, 2, 26, 57, 68, 98, 2,
2397  27, 58, 66, 97, 2, 28, 59, 65, 96, 2, 29, 60, 64, 95, 2, 30, 62, 63, 94, 1, 32, 93,
2398  1, 33, 91, 1, 34, 90, 1, 35, 89, 1, 36, 88, 1, 37, 87, 1, 39, 86, 1, 40, 84, 1,
2399  41, 83, 1, 42, 82, 1, 43, 81, 1, 44, 80, 1, 46, 78, 1, 47, 77, 1, 45, 78, 1, 44,
2400  80, 1, 43, 81, 1, 42, 82, 1, 41, 83, 1, 40, 84, 1, 39, 85, 1, 38, 87, 1, 36, 88,
2401  1, 35, 89, 1, 34, 90, 1, 33, 91, 1, 32, 92, 2, 31, 61, 63, 94, 2, 30, 60, 64, 95,
2402  2, 28, 59, 65, 96, 2, 27, 58, 66, 97, 2, 26, 57, 67, 98, 2, 25, 55, 69, 99, 2, 24,
2403  54, 70, 101, 2, 23, 53, 71, 102, 2, 22, 52, 72, 103, 2, 21, 51, 73, 104, 2, 19, 50, 74,
2404  105, 2, 18, 48, 76, 106, 2, 17, 47, 77, 108, 2, 14, 48, 76, 111, 2, 11, 51, 74, 114, 2,
2405  9, 52, 73, 115, 2, 8, 53, 71, 117, 2, 7, 54, 71, 117, 2, 7, 54, 70, 118, 2, 6, 55,
2406  70, 118, 2, 6, 55, 69, 119, 2, 6, 55, 69, 119, 2, 6, 55, 69, 119, 2, 6, 55, 69, 119,
2407  2, 6, 55, 69, 119, 2, 6, 55, 69, 119, 2, 6, 55, 70, 119, 2, 6, 54, 70, 118, 2, 7,
2408  54, 70, 118, 2, 8, 53, 71, 117, 2, 9, 52, 72, 116, 2, 10, 51, 74, 114, 2, 13, 48, 76,
2409  112, 121, 67, 200, 2, 17, 40, 84, 108, 2, 12, 45, 79, 113, 2, 10, 47, 77, 115, 2, 8, 48,
2410  76, 116, 2, 7, 49, 75, 117, 2, 7, 50, 74, 118, 2, 6, 50, 74, 118, 2, 6, 51, 74, 119,
2411  2, 6, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6, 51, 73, 119, 2, 6,
2412  51, 73, 119, 2, 6, 51, 74, 119, 2, 6, 50, 74, 118, 2, 7, 50, 74, 118, 2, 8, 49, 75,
2413  117, 2, 8, 48, 76, 117, 2, 10, 47, 77, 115, 2, 11, 45, 79, 114, 2, 15, 41, 83, 109, 2,
2414  16, 39, 85, 108, 2, 17, 39, 85, 108, 2, 17, 40, 84, 107, 2, 18, 40, 84, 107, 2, 18, 41,
2415  83, 106, 2, 19, 41, 83, 106, 2, 19, 42, 82, 105, 2, 20, 42, 82, 105, 2, 20, 43, 81, 104,
2416  2, 21, 43, 81, 104, 2, 21, 44, 80, 103, 2, 22, 44, 80, 103, 2, 22, 45, 79, 102, 2, 23,
2417  45, 79, 102, 2, 23, 46, 78, 101, 2, 24, 46, 78, 101, 2, 24, 47, 77, 100, 2, 25, 47, 77,
2418  100, 2, 25, 48, 76, 99, 2, 26, 48, 76, 99, 2, 26, 49, 75, 98, 2, 27, 49, 75, 98, 2,
2419  27, 50, 74, 97, 2, 28, 50, 74, 97, 2, 28, 51, 73, 96, 2, 29, 51, 73, 96, 2, 29, 52,
2420  72, 95, 2, 30, 52, 72, 95, 2, 30, 53, 71, 94, 2, 31, 53, 71, 93, 2, 31, 54, 70, 93,
2421  2, 32, 55, 70, 92, 2, 32, 55, 69, 92, 2, 33, 56, 69, 91, 2, 33, 56, 68, 91, 2, 34,
2422  57, 68, 90, 2, 34, 57, 67, 90, 2, 35, 58, 67, 89, 2, 35, 58, 66, 89, 2, 36, 59, 66,
2423  88, 2, 36, 59, 65, 88, 2, 37, 60, 65, 87, 2, 37, 60, 64, 87, 2, 38, 61, 64, 86, 2,
2424  38, 61, 63, 86, 2, 39, 62, 63, 85, 1, 39, 85, 1, 40, 84, 1, 41, 84, 1, 41, 83, 1,
2425  42, 83, 1, 42, 82, 1, 43, 82, 1, 43, 81, 1, 44, 81, 1, 44, 80, 1, 45, 80, 1, 45,
2426  79, 1, 46, 79, 1, 46, 78, 1, 47, 78, 1, 47, 77, 1, 48, 77, 1, 48, 76, 1, 49, 76,
2427  1, 49, 75, 1, 50, 75, 1, 50, 74, 1, 51, 74, 1, 50, 73, 1, 50, 73, 1, 49, 72, 1,
2428  49, 72, 1, 48, 71, 1, 48, 71, 1, 47, 70, 1, 47, 70, 1, 46, 69, 1, 46, 69, 1, 45,
2429  68, 1, 45, 68, 1, 44, 67, 1, 44, 67, 1, 43, 66, 1, 43, 66, 1, 42, 65, 1, 42, 65,
2430  1, 41, 64, 1, 41, 64, 1, 40, 63, 1, 40, 63, 1, 16, 66, 1, 11, 71, 1, 10, 73, 1,
2431  8, 74, 1, 7, 75, 1, 7, 76, 1, 6, 76, 1, 6, 76, 1, 6, 77, 1, 6, 77, 1, 5,
2432  77, 1, 6, 77, 1, 6, 77, 1, 6, 76, 1, 6, 76, 1, 7, 76, 1, 7, 75, 1, 8, 74,
2433  1, 10, 73, 1, 12, 71, 1, 17, 66, 122, 67, 157, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1,
2434  21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21,
2435  105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 105, 1, 21, 104,
2436  1, 21, 103, 1, 21, 102, 1, 21, 101, 2, 21, 41, 71, 100, 2, 21, 41, 70, 99, 2, 21, 41,
2437  69, 98, 2, 21, 41, 68, 97, 2, 21, 41, 67, 96, 2, 21, 41, 66, 95, 2, 21, 41, 65, 94,
2438  2, 21, 41, 64, 93, 2, 22, 40, 63, 92, 2, 22, 40, 62, 91, 2, 23, 39, 61, 90, 2, 23,
2439  39, 60, 89, 2, 24, 38, 59, 88, 2, 25, 37, 58, 87, 2, 27, 34, 57, 86, 1, 56, 85, 1,
2440  55, 84, 1, 54, 83, 1, 53, 82, 1, 52, 81, 1, 51, 80, 1, 50, 79, 1, 49, 78, 1, 48,
2441  77, 1, 47, 76, 1, 46, 75, 1, 45, 74, 1, 44, 73, 1, 43, 72, 1, 42, 71, 1, 41, 70,
2442  1, 40, 69, 1, 39, 68, 1, 38, 67, 1, 37, 66, 1, 36, 65, 1, 35, 64, 1, 34, 63, 2,
2443  33, 62, 93, 101, 2, 32, 61, 91, 103, 2, 31, 60, 90, 104, 2, 30, 59, 89, 105, 2, 29, 58,
2444  89, 105, 2, 28, 57, 88, 106, 2, 27, 56, 88, 106, 2, 26, 55, 87, 106, 2, 25, 54, 87, 107,
2445  2, 24, 53, 87, 107, 2, 23, 52, 87, 107, 1, 22, 107, 1, 21, 107, 1, 20, 107, 1, 19, 107,
2446  1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1,
2447  19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19, 107, 1, 19,
2448  107, 1, 19, 107, 123, 29, 189, 1, 74, 80, 1, 70, 84, 1, 68, 85, 1, 66, 86, 1, 64, 87,
2449  1, 63, 88, 1, 62, 88, 1, 61, 89, 1, 60, 89, 1, 59, 89, 1, 58, 89, 1, 57, 89, 1,
2450  56, 89, 1, 56, 88, 1, 55, 88, 1, 55, 88, 1, 54, 87, 1, 54, 86, 1, 54, 85, 1, 53,
2451  83, 1, 53, 80, 1, 53, 75, 1, 52, 74, 1, 52, 74, 1, 52, 73, 1, 52, 73, 1, 52, 73,
2452  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2453  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2454  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2455  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2456  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2457  72, 1, 52, 72, 1, 51, 72, 1, 51, 72, 1, 50, 72, 1, 46, 72, 1, 42, 71, 1, 40, 71,
2458  1, 38, 71, 1, 37, 70, 1, 37, 70, 1, 36, 69, 1, 36, 69, 1, 36, 68, 1, 36, 67, 1,
2459  35, 67, 1, 35, 67, 1, 36, 67, 1, 36, 68, 1, 36, 69, 1, 36, 69, 1, 37, 70, 1, 37,
2460  70, 1, 38, 71, 1, 40, 71, 1, 42, 71, 1, 46, 72, 1, 49, 72, 1, 51, 72, 1, 51, 72,
2461  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2462  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2463  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2464  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2465  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2466  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 73, 1, 52, 73, 1, 52, 73, 1, 52, 73,
2467  1, 53, 74, 1, 53, 76, 1, 53, 80, 1, 53, 84, 1, 54, 85, 1, 54, 86, 1, 54, 87, 1,
2468  55, 88, 1, 55, 88, 1, 56, 88, 1, 57, 89, 1, 57, 89, 1, 58, 89, 1, 59, 89, 1, 60,
2469  89, 1, 61, 89, 1, 62, 88, 1, 63, 88, 1, 64, 87, 1, 66, 86, 1, 68, 85, 1, 70, 84,
2470  1, 74, 81, 124, 29, 189, 1, 60, 64, 1, 57, 67, 1, 56, 69, 1, 55, 69, 1, 54, 70, 1,
2471  53, 71, 1, 53, 71, 1, 53, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2472  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2473  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2474  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2475  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2476  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2477  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2478  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2479  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2480  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2481  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2482  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2483  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2484  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2485  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2486  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2487  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2488  1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1,
2489  52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52,
2490  72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72, 1, 52, 72,
2491  1, 53, 72, 1, 53, 71, 1, 53, 71, 1, 54, 71, 1, 55, 70, 1, 56, 69, 1, 57, 67, 1,
2492  59, 65, 125, 29, 189, 1, 43, 49, 1, 40, 53, 1, 38, 56, 1, 37, 58, 1, 37, 59, 1, 36,
2493  61, 1, 35, 62, 1, 35, 63, 1, 35, 64, 1, 35, 65, 1, 35, 66, 1, 35, 66, 1, 35, 67,
2494  1, 35, 68, 1, 36, 68, 1, 36, 69, 1, 37, 69, 1, 38, 70, 1, 39, 70, 1, 40, 70, 1,
2495  44, 71, 1, 48, 71, 1, 50, 71, 1, 50, 71, 1, 51, 71, 1, 51, 71, 1, 51, 72, 1, 51,
2496  72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72,
2497  1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1,
2498  51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51,
2499  72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72,
2500  1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 52, 72, 1,
2501  52, 72, 1, 52, 72, 1, 52, 73, 1, 52, 74, 1, 52, 77, 1, 52, 82, 1, 53, 84, 1, 53,
2502  85, 1, 53, 86, 1, 54, 87, 1, 54, 87, 1, 55, 88, 1, 56, 88, 1, 56, 88, 1, 57, 88,
2503  1, 57, 88, 1, 56, 88, 1, 56, 88, 1, 55, 88, 1, 54, 87, 1, 54, 87, 1, 53, 86, 1,
2504  53, 85, 1, 52, 84, 1, 52, 82, 1, 52, 78, 1, 52, 74, 1, 52, 73, 1, 52, 73, 1, 52,
2505  72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72,
2506  1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1,
2507  51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51,
2508  72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72,
2509  1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1,
2510  51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 72, 1, 51, 71, 1, 51, 71, 1, 50, 71, 1, 50,
2511  71, 1, 48, 71, 1, 44, 71, 1, 40, 70, 1, 39, 70, 1, 38, 70, 1, 37, 69, 1, 36, 69,
2512  1, 36, 68, 1, 35, 68, 1, 35, 67, 1, 35, 67, 1, 35, 66, 1, 35, 65, 1, 35, 64, 1,
2513  35, 63, 1, 35, 62, 1, 36, 61, 1, 37, 59, 1, 37, 58, 1, 38, 56, 1, 40, 53, 1, 43,
2514  50, 126, 79, 121, 1, 38, 50, 1, 36, 53, 1, 33, 56, 1, 32, 57, 1, 30, 59, 1, 28, 60,
2515  2, 27, 61, 98, 102, 2, 26, 63, 96, 105, 2, 25, 64, 94, 107, 2, 24, 65, 93, 108, 2, 23,
2516  66, 92, 109, 2, 22, 67, 92, 109, 2, 21, 68, 91, 110, 2, 20, 69, 90, 110, 2, 19, 70, 89,
2517  110, 2, 18, 71, 88, 110, 2, 17, 72, 87, 111, 2, 17, 74, 86, 110, 2, 16, 75, 85, 110, 2,
2518  15, 76, 84, 110, 3, 15, 42, 46, 77, 83, 110, 2, 14, 41, 48, 109, 2, 14, 40, 49, 108, 2,
2519  14, 39, 50, 108, 2, 14, 38, 51, 107, 2, 14, 37, 52, 106, 2, 14, 36, 53, 105, 2, 14, 35,
2520  55, 105, 2, 14, 34, 56, 104, 2, 15, 33, 57, 103, 2, 15, 32, 58, 102, 2, 16, 31, 59, 101,
2521  2, 17, 30, 60, 100, 2, 18, 29, 61, 99, 2, 20, 27, 63, 98, 1, 64, 97, 1, 65, 95, 1,
2522  67, 94, 1, 69, 92, 1, 71, 90, 1, 73, 88, 1, 79, 84,
2523  };
2524 
2525  return Load(data, sizeof(data));
2526  }
2527 
2528  void LoadTTF(const std::string &filename)
2529  {
2530  std::ifstream fontFile(filename.c_str(), std::ios::binary | std::ios::ate);
2531  fontFile >> std::noskipws;
2532 
2533  std::streampos fileSize = fontFile.tellg();
2534  fontFile.seekg(0, std::ios::beg);
2535 
2536  fontBuffer.clear();
2537  fontBuffer.reserve(fileSize);
2538 
2539  std::copy(std::istream_iterator<unsigned char>(fontFile), std::istream_iterator<unsigned char>(),
2540  std::back_inserter(fontBuffer));
2541 
2542  /* prepare font */
2543  if (!stbtt_InitFont(&_info, fontBuffer.data(), 0)) {
2544  throw vpIoException(vpIoException::ioError, "Error when initializing the font data.");
2545  }
2546  }
2547 
2548  void ToUTF32(const std::string &str, std::vector<unsigned int> &utf32)
2549  {
2550  // convert UTF8 to UTF32
2551  utf32.clear();
2552  for (size_t i = 0; i < str.size(); i++) {
2553  unsigned char ch = (unsigned char)str[i];
2554  unsigned int charcode;
2555  if (ch <= 127) {
2556  charcode = ch;
2557  }
2558  else if (ch <= 223 && i + 1 < str.size() && (str[i + 1] & 0xc0) == 0x80) {
2559  charcode = ((ch & 31) << 6) | (str[i + 1] & 63);
2560  i++;
2561  }
2562  else if (ch <= 239 && i + 2 < str.size() && (str[i + 1] & 0xc0) == 0x80 && (str[i + 2] & 0xc0) == 0x80) {
2563  charcode = ((ch & 15) << 12) | ((str[i + 1] & 63) << 6) | (str[i + 2] & 63);
2564  i += 2;
2565  }
2566  else if (ch <= 247 && i + 3 < str.size() && (str[i + 1] & 0xc0) == 0x80 && (str[i + 2] & 0xc0) == 0x80 &&
2567  (str[i + 3] & 0xc0) == 0x80) {
2568  int val = (int)(((ch & 15) << 18) | ((str[i + 1] & 63) << 12) | ((str[i + 2] & 63) << 6) | (str[i + 3] & 63));
2569  if (val > 1114111) {
2570  val = 65533;
2571  }
2572  charcode = val;
2573  i += 3;
2574  }
2575  else {
2576  charcode = 65533;
2577  while (i + 1 < str.size() && (str[i + 1] & 0xc0) == 0x80) {
2578  i++;
2579  }
2580  }
2581  utf32.push_back(charcode);
2582  }
2583  }
2584 };
2585 #endif // DOXYGEN_SHOULD_SKIP_THIS
2586 
2598 vpFont::vpFont(unsigned int height, const vpFontFamily &fontFamily, const std::string &ttfFilename)
2599  : m_impl(new Impl(height, fontFamily, ttfFilename))
2600 { }
2601 
2605 vpFont::~vpFont() { delete m_impl; }
2606 
2617 bool vpFont::drawText(vpImage<unsigned char> &I, const std::string &text, const vpImagePoint &position,
2618  unsigned char color) const
2619 {
2620  return m_impl->Draw(I, text, position, color);
2621 }
2622 
2634 bool vpFont::drawText(vpImage<unsigned char> &I, const std::string &text, const vpImagePoint &position,
2635  unsigned char color, unsigned char background) const
2636 {
2637  return m_impl->Draw(I, text, position, color, background);
2638 }
2639 
2650 bool vpFont::drawText(vpImage<vpRGBa> &I, const std::string &text, const vpImagePoint &position,
2651  const vpColor &color) const
2652 {
2653  return m_impl->Draw(I, text, position, color);
2654 }
2655 
2667 bool vpFont::drawText(vpImage<vpRGBa> &I, const std::string &text, const vpImagePoint &position, const vpColor &color,
2668  const vpColor &background) const
2669 {
2670  return m_impl->Draw(I, text, position, color, background);
2671 }
2672 
2678 unsigned int vpFont::getHeight() const { return static_cast<unsigned int>(m_impl->Height()); }
2679 
2685 vpImagePoint vpFont::getMeasure(const std::string &text) const { return m_impl->Measure2(text); }
2686 
2694 bool vpFont::setHeight(unsigned int height) { return m_impl->Resize(height); }
Class to define RGB colors available for display functionalities.
Definition: vpColor.h:152
error that can be emitted by ViSP classes.
Definition: vpException.h:59
@ ioError
I/O error.
Definition: vpException.h:79
@ fatalError
Fatal error.
Definition: vpException.h:84
bool drawText(vpImage< unsigned char > &I, const std::string &text, const vpImagePoint &position, unsigned char color) const
Definition: vpFont.cpp:2617
vpFont(unsigned int height=16, const vpFontFamily &fontFamily=TRUETYPE_FILE, const std::string &ttfFilename=std::string(VISP_RUBIK_REGULAR_FONT_RESOURCES))
Definition: vpFont.cpp:2598
vpImagePoint getMeasure(const std::string &text) const
Definition: vpFont.cpp:2685
unsigned int getHeight() const
Definition: vpFont.cpp:2678
vpFontFamily
Definition: vpFont.h:56
@ GENERIC_MONOSPACE
Definition: vpFont.h:56
@ TRUETYPE_FILE
Definition: vpFont.h:56
bool setHeight(unsigned int height)
Definition: vpFont.cpp:2694
~vpFont()
Definition: vpFont.cpp:2605
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Definition: vpImagePoint.h:82
double get_u() const
Definition: vpImagePoint.h:136
double get_v() const
Definition: vpImagePoint.h:147
static void resize(const vpImage< Type > &I, vpImage< Type > &Ires, unsigned int width, unsigned int height, const vpImageInterpolationType &method=INTERPOLATION_NEAREST, unsigned int nThreads=0)
@ INTERPOLATION_LINEAR
Definition: vpImageTools.h:80
unsigned int getWidth() const
Definition: vpImage.h:245
void resize(unsigned int h, unsigned int w)
resize the image : Image initialization
Definition: vpImage.h:783
void insert(const vpImage< Type > &src, const vpImagePoint &topLeft)
Definition: vpImage.h:1533
unsigned int getHeight() const
Definition: vpImage.h:184
Error that can be emitted by the vpIoTools class and its derivatives.
Definition: vpIoException.h:54
static std::vector< std::string > splitChain(const std::string &chain, const std::string &sep)
Definition: vpIoTools.cpp:2425
static bool checkFilename(const std::string &filename)
Definition: vpIoTools.cpp:1213
static int round(double x)
Definition: vpMath.h:403
Definition: vpRGBa.h:61
unsigned char B
Blue component.
Definition: vpRGBa.h:139
unsigned char R
Red component.
Definition: vpRGBa.h:137
unsigned char G
Green component.
Definition: vpRGBa.h:138
Defines a rectangle in the plane.
Definition: vpRect.h:76