Visual Servoing Platform  version 3.5.1 under development (2022-07-05)
vpFont.cpp
1 /****************************************************************************
2  *
3  * ViSP, open source Visual Servoing Platform software.
4  * Copyright (C) 2005 - 2019 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 http://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 #if (VISP_CXX_STANDARD > VISP_CXX_STANDARD_98)
65 #include <iterator>
66 #else
67 #include <stdio.h>
68 #endif
69 #include "private/Font.hpp"
70 
71 #define STB_TRUETYPE_IMPLEMENTATION
72 #include "private/stb_truetype.h"
73 
74 #ifndef DOXYGEN_SHOULD_SKIP_THIS
75 class vpFont::Impl
76 {
77 private:
78  typedef Font::Point<int> Point;
79  typedef std::string String;
80  typedef Font::Rectangle<int> Rect;
81  typedef std::vector<Rect> Rects;
82  typedef std::vector<Point> Points;
83 
84 public:
93  Impl(unsigned int height = 16, const vpFontFamily &fontFamily = TRUETYPE_FILE,
94  const std::string &ttfFilename = std::string(VISP_RUBIK_REGULAR_FONT_RESOURCES))
95  {
96  _fontHeight = height;
97  _ttfFamily = fontFamily;
98 
99  switch (_ttfFamily) {
100  case GENERIC_MONOSPACE: {
101  LoadDefault();
102  Resize(height);
103  break;
104  }
105  case TRUETYPE_FILE: {
106  std::vector<std::string> ttfs = vpIoTools::splitChain(ttfFilename, ";");
107  std::string ttf_file = "";
108  for (size_t i = 0; i < ttfs.size(); i++) {
109  if (vpIoTools::checkFilename(ttfs[i])) {
110  ttf_file = ttfs[i];
111  break;
112  }
113  }
114  if (ttf_file.empty()) {
115  throw(vpException(vpException::fatalError, "True type font file doesn't exist in %s", ttfFilename.c_str()));
116  }
117 
118  LoadTTF(ttf_file);
119 
120  /* calculate font scaling */
121  _fontScale = stbtt_ScaleForPixelHeight(&_info, static_cast<float>(_fontHeight));
122 
123  int lineGap = 0;
124  stbtt_GetFontVMetrics(&_info, &_fontAscent, &_fontDescent, &lineGap);
125 
126  _fontAscent = vpMath::round(_fontAscent * _fontScale);
127  _fontDescent = vpMath::round(_fontDescent * _fontScale);
128 
129  break;
130  }
131  }
132  }
133 
141  bool Resize(unsigned int height)
142  {
143  _fontHeight = height;
144 
145  switch (_ttfFamily) {
146  case GENERIC_MONOSPACE: {
147  if (height == static_cast<unsigned int>(_currentSize.y)) {
148  return true;
149  }
150 
151  if (height < 4u || height > static_cast<unsigned int>(_originalSize.y * 4)) {
152  return false;
153  }
154 
155  _currentSize.y = static_cast<int>(height);
156  _currentSize.x = static_cast<int>(height) * _originalSize.x / _originalSize.y;
157  _currentIndent.x = static_cast<int>(height) * _originalIndent.x / _originalSize.y;
158  _currentIndent.y = static_cast<int>(height) * _originalIndent.y / _originalSize.y;
159 
160  size_t level = 0;
161  for (; (height << (level + 1)) < static_cast<size_t>(_originalSize.y); level++)
162  ;
163 
164  _currentSymbols.resize(_originalSymbols.size());
165  for (size_t i = 0; i < _originalSymbols.size(); i++) {
166  _currentSymbols[i].value = _originalSymbols[i].value;
167  _currentSymbols[i].image.resize(static_cast<unsigned int>(_currentSize.y),
168  static_cast<unsigned int>(_currentSize.x));
169  vpImageTools::resize(_originalSymbols[i].image, _currentSymbols[i].image, vpImageTools::INTERPOLATION_LINEAR);
170  }
171 
172  break;
173  }
174 
175  case TRUETYPE_FILE:
176  break;
177  }
178 
179  return true;
180  }
181 
187  int Height() const { return _fontHeight; }
188 
196  Point Measure(const String &text)
197  {
198  switch (_ttfFamily) {
199  case GENERIC_MONOSPACE: {
200  Point size, curr;
201  for (size_t i = 0; i < text.size(); i++) {
202  if (text[i] >= _symbolMin && text[i] <= _symbolMax) {
203  curr.x += _currentSize.x;
204  size.x = std::max(size.x, curr.x);
205  size.y = std::max(size.y, curr.y + _currentSize.y);
206  } else if (text[i] == '\n') {
207  curr.x = 0;
208  curr.y += _currentSize.y;
209  }
210  }
211  return size.x ? size + 2 * _currentIndent : Point();
212  }
213 
214  case TRUETYPE_FILE: {
215  ToUTF32(text, _wordUTF32);
216 
217  _bb = vpRect(std::numeric_limits<double>::max(), std::numeric_limits<double>::max(), -1, -1);
218  _ax_vec.clear();
219  _lsb_vec.clear();
220  _bb_vec.clear();
221  _y_vec.clear();
222 
223  int wordUTF32_size = static_cast<int>(_wordUTF32.size());
224 
225  for (int i = 0, x = 0; i < wordUTF32_size; i++) {
226  /* how wide is this character */
227  int ax = 0;
228  int lsb = 0;
229  stbtt_GetCodepointHMetrics(&_info, _wordUTF32[i], &ax, &lsb);
230  _ax_vec.push_back(ax);
231  _lsb_vec.push_back(lsb);
232  /* (Note that each Codepoint call has an alternative Glyph version which caches the work required to lookup the
233  * character word[i].) */
234 
235  /* get bounding box for character (may be offset to account for chars that dip above or below the line */
236  int c_x1 = 0, c_y1 = 0, c_x2 = 0, c_y2 = 0;
237  stbtt_GetCodepointBitmapBox(&_info, _wordUTF32[i], _fontScale, _fontScale, &c_x1, &c_y1, &c_x2, &c_y2);
238  _bb_vec.push_back(vpRect(c_x1, c_y1, c_x2 - c_x1, c_y2 - c_y1));
239 
240  /* compute y (different characters have different heights */
241  int y = _fontAscent + c_y1;
242  _y_vec.push_back(y);
243 
244  int d_x = x + vpMath::round(lsb * _fontScale);
245  int d_y = y;
246  int d_w = (c_x2 - c_x1);
247  int d_h = (c_y2 - c_y1);
248  _bb.setLeft(_bb.getLeft() > d_x ? d_x : _bb.getLeft());
249  _bb.setTop(_bb.getTop() > d_y ? d_y : _bb.getTop());
250 
251  _bb.setWidth(d_x + d_w - _bb.getLeft());
252  _bb.setBottom(_bb.getBottom() < d_y + d_h ? d_y + d_h : _bb.getBottom());
253 
254  /* advance x */
255  x += vpMath::round(ax * _fontScale);
256 
257  /* add kerning */
258  int kern = 0;
259  if (i < wordUTF32_size - 1) {
260  kern = stbtt_GetCodepointKernAdvance(&_info, _wordUTF32[i], _wordUTF32[i + 1]);
261  x += vpMath::round(kern * _fontScale);
262  }
263  }
264 
265  Point bb;
266  bb.x = static_cast<int>(_bb.getWidth());
267  bb.y = static_cast<int>(_bb.getHeight());
268 
269  return bb;
270  }
271  }
272 
273  return Point();
274  }
275 
279  vpImagePoint Measure2(const String &text)
280  {
281  Point mes = Measure(text);
282  return vpImagePoint(mes.y, mes.x);
283  }
284 
295  bool Draw(vpImage<unsigned char> &canvas, const String &text, const vpImagePoint &position, unsigned char color)
296  {
297  switch (_ttfFamily) {
298  case GENERIC_MONOSPACE: {
299  Rect canvasRect, alphaRect;
300  CreateAlpha(text, Rect(0, 0, canvas.getWidth(), canvas.getHeight()), Point(position.get_u(), position.get_v()),
301  _alpha, canvasRect, alphaRect);
302 
303  if (_alpha.getSize()) {
304  for (int i = 0; i < alphaRect.Height(); i++) {
305  int dstY = canvasRect.Top() + i;
306  for (int j = 0; j < alphaRect.Width(); j++) {
307  unsigned int dstX = static_cast<unsigned int>(canvasRect.Left() + j);
308 
309  // dst[x, y, c] = (pixel[c]*_alpha[x, y] + dst[x, y, c]*(255 - _alpha[x, y]))/255;
310  int coeff = 255 - _alpha[i][j];
311  unsigned char gray = static_cast<unsigned char>((color * _alpha[i][j] + coeff * canvas[dstY][dstX]) / 255);
312  canvas[dstY][dstX] = gray;
313  }
314  }
315  }
316 
317  break;
318  }
319 
320  case TRUETYPE_FILE: {
321  Measure(text);
322  // Try to resize only if new size is bigger
323  _fontBuffer.resize(std::max(_fontBuffer.getHeight(), static_cast<unsigned int>(_bb.getBottom() + 1)),
324  std::max(_fontBuffer.getWidth(), static_cast<unsigned int>(_bb.getRight() + 1)));
325 
326  int wordUTF32_size = static_cast<int>(_wordUTF32.size());
327 
328  for (int i = 0, x = 0; i < wordUTF32_size; i++) {
329  /* render character (stride and offset is important here) */
330  int byteOffset = x + vpMath::round(_lsb_vec[i] * _fontScale) + (_y_vec[i] * _fontBuffer.getWidth());
331  stbtt_MakeCodepointBitmap(&_info, _fontBuffer.bitmap + byteOffset, static_cast<int>(_bb_vec[i].getWidth()),
332  static_cast<int>(_bb_vec[i].getHeight()), _fontBuffer.getWidth(), _fontScale,
333  _fontScale, _wordUTF32[i]);
334 
335  int d_x = x + vpMath::round(_lsb_vec[i] * _fontScale);
336  int d_y = _y_vec[i];
337  int d_w = static_cast<int>(_bb_vec[i].getWidth());
338  int d_h = static_cast<int>(_bb_vec[i].getHeight());
339 
340  for (int y = d_y; y < d_y + d_h; y++) {
341  int dstY = static_cast<int>(position.get_v() + y - _bb.getTop());
342 
343  for (int x = d_x; x < d_x + d_w; x++) {
344  unsigned int dstX = static_cast<unsigned int>(position.get_u() + x - _bb.getLeft());
345 
346  int coeff = 255 - _fontBuffer[y][x];
347  unsigned char gray =
348  static_cast<unsigned char>((color * _fontBuffer[y][x] + coeff * canvas[dstY][dstX]) / 255);
349  canvas[dstY][dstX] = gray;
350  }
351  }
352 
353  /* advance x */
354  x += vpMath::round(_ax_vec[i] * _fontScale);
355 
356  /* add kerning */
357  if (i < wordUTF32_size - 1) {
358  int kern = stbtt_GetCodepointKernAdvance(&_info, _wordUTF32[i], _wordUTF32[i + 1]);
359  x += vpMath::round(kern * _fontScale);
360  }
361  }
362 
363  break;
364  }
365  }
366 
367  return true;
368  }
369 
381  bool Draw(vpImage<unsigned char> &canvas, const String &text, const vpImagePoint &position, unsigned char color,
382  unsigned char background)
383  {
384  Rect canvasRect = Rect(Measure(text)).Shifted(position.get_u(), position.get_v());
385  for (int i = canvasRect.Top(); i < canvasRect.Bottom(); i++) {
386  for (int j = canvasRect.Left(); j < canvasRect.Right(); j++) {
387  canvas[i][j] = background;
388  }
389  }
390  return Draw(canvas, text, position, color);
391  }
392 
403  bool Draw(vpImage<vpRGBa> &canvas, const String &text, const vpImagePoint &position, const vpColor &color)
404  {
405  switch (_ttfFamily) {
406  case GENERIC_MONOSPACE: {
407  Rect canvasRect, alphaRect;
408  CreateAlpha(text, Rect(0, 0, canvas.getWidth(), canvas.getHeight()), Point(position.get_u(), position.get_v()),
409  _alpha, canvasRect, alphaRect);
410 
411  if (_alpha.getSize()) {
412  for (int i = 0; i < alphaRect.Height(); i++) {
413  int dstY = canvasRect.Top() + i;
414  for (int j = 0; j < alphaRect.Width(); j++) {
415  unsigned int dstX = static_cast<unsigned int>(canvasRect.Left() + j);
416 
417  // dst[x, y, c] = (pixel[c]*_alpha[x, y] + dst[x, y, c]*(255 - _alpha[x, y]))/255;
418  int coeff = 255 - _alpha[i][j];
419  int R = (color.R * _alpha[i][j] + coeff * canvas[dstY][dstX].R) / 255;
420  int G = (color.G * _alpha[i][j] + coeff * canvas[dstY][dstX].G) / 255;
421  int B = (color.B * _alpha[i][j] + coeff * canvas[dstY][dstX].B) / 255;
422  canvas[dstY][dstX] =
423  vpRGBa(static_cast<unsigned char>(R), static_cast<unsigned char>(G), static_cast<unsigned char>(B));
424  }
425  }
426  }
427 
428  break;
429  }
430 
431  case TRUETYPE_FILE: {
432  Measure(text);
433  // Try to resize only if new size is bigger
434  _fontBuffer.resize(std::max(_fontBuffer.getHeight(), static_cast<unsigned int>(_bb.getBottom() + 1)),
435  std::max(_fontBuffer.getWidth(), static_cast<unsigned int>(_bb.getRight() + 1)));
436 
437  int wordUTF32_size = static_cast<int>(_wordUTF32.size());
438 
439  for (int i = 0, x = 0; i < wordUTF32_size; i++) {
440  /* render character (stride and offset is important here) */
441  int byteOffset = x + vpMath::round(_lsb_vec[i] * _fontScale) + (_y_vec[i] * _fontBuffer.getWidth());
442  stbtt_MakeCodepointBitmap(&_info, _fontBuffer.bitmap + byteOffset, static_cast<int>(_bb_vec[i].getWidth()),
443  static_cast<int>(_bb_vec[i].getHeight()), _fontBuffer.getWidth(), _fontScale,
444  _fontScale, _wordUTF32[i]);
445 
446  int d_x = x + vpMath::round(_lsb_vec[i] * _fontScale);
447  int d_y = _y_vec[i];
448  int d_w = static_cast<int>(_bb_vec[i].getWidth());
449  int d_h = static_cast<int>(_bb_vec[i].getHeight());
450 
451  for (int y = d_y; y < d_y + d_h; y++) {
452  int dstY = static_cast<int>(position.get_v() + y - _bb.getTop());
453 
454  for (int x = d_x; x < d_x + d_w; x++) {
455  unsigned int dstX = static_cast<unsigned int>(position.get_u() + x - _bb.getLeft());
456 
457  int coeff = 255 - _fontBuffer[y][x];
458  int R = (color.R * _fontBuffer[y][x] + coeff * canvas[dstY][dstX].R) / 255;
459  int G = (color.G * _fontBuffer[y][x] + coeff * canvas[dstY][dstX].G) / 255;
460  int B = (color.B * _fontBuffer[y][x] + coeff * canvas[dstY][dstX].B) / 255;
461  canvas[dstY][dstX] =
462  vpRGBa(static_cast<unsigned char>(R), static_cast<unsigned char>(G), static_cast<unsigned char>(B));
463  }
464  }
465 
466  /* advance x */
467  x += vpMath::round(_ax_vec[i] * _fontScale);
468 
469  /* add kerning */
470  if (i < wordUTF32_size - 1) {
471  int kern = stbtt_GetCodepointKernAdvance(&_info, _wordUTF32[i], _wordUTF32[i + 1]);
472  x += vpMath::round(kern * _fontScale);
473  }
474  }
475 
476  break;
477  }
478  }
479 
480  return true;
481  }
482 
494  bool Draw(vpImage<vpRGBa> &canvas, const String &text, const vpImagePoint &position, const vpColor &color,
495  const vpColor &background)
496  {
497  Rect canvasRect = Rect(Measure(text)).Shifted(position.get_u(), position.get_v());
498  for (int i = canvasRect.Top(); i < canvasRect.Bottom(); i++) {
499  for (int j = canvasRect.Left(); j < canvasRect.Right(); j++) {
500  canvas[i][j] = background;
501  }
502  }
503  return Draw(canvas, text, position, color);
504  }
505 
506 private:
507  struct Symbol {
508  char value;
510  };
511  typedef std::vector<Symbol> Symbols;
512 
513  Symbols _originalSymbols, _currentSymbols;
514  Point _originalSize, _currentSize, _originalIndent, _currentIndent;
515  char _symbolMin, _symbolMax;
516  vpImage<unsigned char> _alpha;
517 
518  // For font drawing using stb_truetype interface
519  std::vector<unsigned char> fontBuffer;
520  unsigned int _fontHeight;
521  float _fontScale;
522  int _fontAscent;
523  int _fontDescent;
524  vpFontFamily _ttfFamily;
525  stbtt_fontinfo _info;
526  vpImage<unsigned char> _fontBuffer;
527  std::vector<unsigned int> _wordUTF32;
528  vpRect _bb;
529  std::vector<int> _ax_vec;
530  std::vector<int> _lsb_vec;
531  std::vector<vpRect> _bb_vec;
532  std::vector<int> _y_vec;
533 
534  void CreateAlpha(const String &text, const Rect &canvas, const Point &shift, vpImage<unsigned char> &alpha,
535  Rect &canvasRect, Rect &alphaRect) const
536  {
537  Rects rects;
538  rects.reserve(text.size());
539  String symbols;
540  symbols.reserve(text.size());
541  Point curr;
542  for (size_t i = 0; i < text.size(); i++) {
543  char value = text[i];
544  if (value >= _symbolMin && value <= _symbolMax) {
545  Rect current(curr, curr + _currentSize);
546  Rect shifted = current.Shifted(shift + _currentIndent);
547  if (!canvas.Intersection(shifted).Empty()) {
548  alphaRect |= current;
549  canvasRect |= shifted;
550  rects.push_back(current);
551  symbols.push_back(value);
552  }
553  curr.x += _currentSize.x;
554  } else if (value == '\n') {
555  curr.x = 0;
556  curr.y += _currentSize.y;
557  }
558  }
559 
560  alpha.resize(static_cast<unsigned int>(alphaRect.Size().y), static_cast<unsigned int>(alphaRect.Size().x), 0);
561  for (size_t i = 0; i < symbols.size(); i++) {
562  Rect r = rects[i].Shifted(-alphaRect.TopLeft());
563  alpha.insert(_currentSymbols[static_cast<size_t>(symbols[i] - _symbolMin)].image,
564  vpImagePoint(r.Top(), r.Left()));
565  }
566  Rect old = canvasRect;
567  canvasRect &= canvas;
568  alphaRect.Shift(-alphaRect.TopLeft());
569  alphaRect.left += canvasRect.left - old.left;
570  alphaRect.top += canvasRect.top - old.top;
571  alphaRect.right += canvasRect.right - old.right;
572  alphaRect.bottom += canvasRect.bottom - old.bottom;
573  }
574 
575  uint8_t LoadValue(const uint8_t *&data, size_t &size)
576  {
577  if (size == 0) {
578  throw;
579  }
580  size--;
581  return *data++;
582  }
583 
584  bool Load(const uint8_t *data, size_t size)
585  {
586  try {
587  _symbolMin = static_cast<char>(LoadValue(data, size));
588  _symbolMax = static_cast<char>(LoadValue(data, size));
589  _originalSize.x = LoadValue(data, size);
590  _originalSize.y = LoadValue(data, size);
591  _originalIndent.x = LoadValue(data, size);
592  _originalIndent.y = LoadValue(data, size);
593  _originalSymbols.resize(static_cast<size_t>(_symbolMax - _symbolMin));
594  for (char s = _symbolMin; s < _symbolMax; s++) {
595  Symbol &symbol = _originalSymbols[static_cast<size_t>(s - _symbolMin)];
596  symbol.value = static_cast<char>(LoadValue(data, size));
597  if (symbol.value != s) {
598  throw;
599  }
600 
601  symbol.image.resize(static_cast<unsigned int>(_originalSize.y), static_cast<unsigned int>(_originalSize.x), 0);
602  size_t top = LoadValue(data, size);
603  size_t bottom = LoadValue(data, size);
604  for (size_t r = top; r < bottom; r++) {
605  size_t count = LoadValue(data, size);
606  for (size_t l = 0; l < count; l++) {
607  size_t left = LoadValue(data, size);
608  size_t right = LoadValue(data, size);
609  assert(left < right);
610  memset(symbol.image[static_cast<unsigned int>(r)] + left, 0xFF, right - left);
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 #if (VISP_CXX_STANDARD > VISP_CXX_STANDARD_98)
2531  std::ifstream fontFile(filename.c_str(), std::ios::binary | std::ios::ate);
2532  fontFile >> std::noskipws;
2533 
2534  std::streampos fileSize = fontFile.tellg();
2535  fontFile.seekg(0, std::ios::beg);
2536 
2537  fontBuffer.clear();
2538  fontBuffer.reserve(fileSize);
2539 
2540  std::copy(std::istream_iterator<unsigned char>(fontFile), std::istream_iterator<unsigned char>(),
2541  std::back_inserter(fontBuffer));
2542 #else
2543  // for compatibility with old platform (e.g. Ubuntu 12.04)
2544  FILE *fontFile = fopen(filename.c_str(), "rb");
2545  if (!fontFile) {
2546  fclose(fontFile);
2547  throw vpIoException(vpIoException::ioError, "Cannot open TTF file: %s", filename.c_str());
2548  }
2549 
2550  fseek(fontFile, 0, SEEK_END);
2551  size_t fileSize = ftell(fontFile); /* how long is the file? */
2552  fseek(fontFile, 0, SEEK_SET); /* reset */
2553 
2554  fontBuffer.resize(fileSize);
2555  if (fread(&fontBuffer[0], sizeof(unsigned char), fontBuffer.size(), fontFile) != fontBuffer.size()) {
2556  fclose(fontFile);
2557  throw vpIoException(vpIoException::ioError, "Error when reading the font file.");
2558  }
2559  fclose(fontFile);
2560 #endif
2561 
2562  /* prepare font */
2563  if (!stbtt_InitFont(&_info, fontBuffer.data(), 0)) {
2564  throw vpIoException(vpIoException::ioError, "Error when initializing the font data.");
2565  }
2566  }
2567 
2568  void ToUTF32(const std::string &str, std::vector<unsigned int> &utf32)
2569  {
2570  // convert UTF8 to UTF32
2571  utf32.clear();
2572  for (size_t i = 0; i < str.size(); i++) {
2573  unsigned char ch = (unsigned char)str[i];
2574  unsigned int charcode;
2575  if (ch <= 127) {
2576  charcode = ch;
2577  } else if (ch <= 223 && i + 1 < str.size() && (str[i + 1] & 0xc0) == 0x80) {
2578  charcode = ((ch & 31) << 6) | (str[i + 1] & 63);
2579  i++;
2580  } else if (ch <= 239 && i + 2 < str.size() && (str[i + 1] & 0xc0) == 0x80 && (str[i + 2] & 0xc0) == 0x80) {
2581  charcode = ((ch & 15) << 12) | ((str[i + 1] & 63) << 6) | (str[i + 2] & 63);
2582  i += 2;
2583  } else if (ch <= 247 && i + 3 < str.size() && (str[i + 1] & 0xc0) == 0x80 && (str[i + 2] & 0xc0) == 0x80 &&
2584  (str[i + 3] & 0xc0) == 0x80) {
2585  int val = (int)(((ch & 15) << 18) | ((str[i + 1] & 63) << 12) | ((str[i + 2] & 63) << 6) | (str[i + 3] & 63));
2586  if (val > 1114111) {
2587  val = 65533;
2588  }
2589  charcode = val;
2590  i += 3;
2591  } else {
2592  charcode = 65533;
2593  while (i + 1 < str.size() && (str[i + 1] & 0xc0) == 0x80) {
2594  i++;
2595  }
2596  }
2597  utf32.push_back(charcode);
2598  }
2599  }
2600 };
2601 #endif // DOXYGEN_SHOULD_SKIP_THIS
2602 
2614 vpFont::vpFont(unsigned int height, const vpFontFamily &fontFamily, const std::string &ttfFilename)
2615  : m_impl(new Impl(height, fontFamily, ttfFilename))
2616 {
2617 }
2618 
2622 vpFont::~vpFont() { delete m_impl; }
2623 
2634 bool vpFont::drawText(vpImage<unsigned char> &I, const std::string &text, const vpImagePoint &position,
2635  unsigned char color) const
2636 {
2637  return m_impl->Draw(I, text, position, color);
2638 }
2639 
2651 bool vpFont::drawText(vpImage<unsigned char> &I, const std::string &text, const vpImagePoint &position,
2652  unsigned char color, unsigned char background) const
2653 {
2654  return m_impl->Draw(I, text, position, color, background);
2655 }
2656 
2667 bool vpFont::drawText(vpImage<vpRGBa> &I, const std::string &text, const vpImagePoint &position,
2668  const vpColor &color) const
2669 {
2670  return m_impl->Draw(I, text, position, color);
2671 }
2672 
2684 bool vpFont::drawText(vpImage<vpRGBa> &I, const std::string &text, const vpImagePoint &position, const vpColor &color,
2685  const vpColor &background) const
2686 {
2687  return m_impl->Draw(I, text, position, color, background);
2688 }
2689 
2695 unsigned int vpFont::getHeight() const { return static_cast<unsigned int>(m_impl->Height()); }
2696 
2702 vpImagePoint vpFont::getMeasure(const std::string &text) const { return m_impl->Measure2(text); }
2703 
2711 bool vpFont::setHeight(unsigned int height) { return m_impl->Resize(height); }
Class to define RGB colors available for display functionnalities.
Definition: vpColor.h:158
error that can be emited by ViSP classes.
Definition: vpException.h:72
@ ioError
I/O error.
Definition: vpException.h:91
@ fatalError
Fatal error.
Definition: vpException.h:96
bool drawText(vpImage< unsigned char > &I, const std::string &text, const vpImagePoint &position, unsigned char color) const
Definition: vpFont.cpp:2634
vpFont(unsigned int height=16, const vpFontFamily &fontFamily=TRUETYPE_FILE, const std::string &ttfFilename=std::string(VISP_RUBIK_REGULAR_FONT_RESOURCES))
Definition: vpFont.cpp:2614
vpImagePoint getMeasure(const std::string &text) const
Definition: vpFont.cpp:2702
unsigned int getHeight() const
Definition: vpFont.cpp:2695
vpFontFamily
Definition: vpFont.h:58
@ GENERIC_MONOSPACE
Definition: vpFont.h:58
@ TRUETYPE_FILE
Definition: vpFont.h:58
bool setHeight(unsigned int height)
Definition: vpFont.cpp:2711
~vpFont()
Definition: vpFont.cpp:2622
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Definition: vpImagePoint.h:89
double get_u() const
Definition: vpImagePoint.h:143
double get_v() const
Definition: vpImagePoint.h:154
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:83
unsigned int getWidth() const
Definition: vpImage.h:246
void resize(unsigned int h, unsigned int w)
resize the image : Image initialization
Definition: vpImage.h:799
void insert(const vpImage< Type > &src, const vpImagePoint &topLeft)
Definition: vpImage.h:1112
unsigned int getHeight() const
Definition: vpImage.h:188
Error that can be emited by the vpIoTools class and its derivates.
Definition: vpIoException.h:73
static std::vector< std::string > splitChain(const std::string &chain, const std::string &sep)
Definition: vpIoTools.cpp:1917
static bool checkFilename(const std::string &filename)
Definition: vpIoTools.cpp:800
static int round(double x)
Definition: vpMath.h:318
Definition: vpRGBa.h:67
unsigned char B
Blue component.
Definition: vpRGBa.h:150
unsigned char R
Red component.
Definition: vpRGBa.h:148
unsigned char G
Green component.
Definition: vpRGBa.h:149
Defines a rectangle in the plane.
Definition: vpRect.h:80