alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (CharMatcherBenchmark.java)

This example Java source code file (CharMatcherBenchmark.java) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

beforeexperiment, benchmark, bitset, charmatcherbenchmark, charsamples, default, list, nonmatching_chars, param, random, samplematcherconfig, size, small, stringbuilder, util

The CharMatcherBenchmark.java Java example source code

/*
 * Copyright (C) 2010 The Guava Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.common.base;

import com.google.caliper.BeforeExperiment;
import com.google.caliper.Benchmark;
import com.google.caliper.Param;
import com.google.common.base.BenchmarkHelpers.SampleMatcherConfig;
import com.google.common.collect.Lists;

import java.util.BitSet;
import java.util.Collections;
import java.util.List;
import java.util.Random;

/**
 * Benchmark for the {@link CharMatcher} class.
 *
 *
 * @author David Beaumont
 * @author Kevin Bourrillion
 * @author David Richter
 */
public class CharMatcherBenchmark {

  // Caliper injects params automatically

  // Overall configuration
  @Param SampleMatcherConfig config;

  // Length of string to match against
  @Param({"64", "1024"}) int length;

  // Percent of string that the CharMatcher matches
  @Param({"0", "10", "50", "100"}) int percent;

  // Whether to use a precomputed CharMatcher
  @Param("true") boolean precomputed;

  enum Size {
    DEFAULT,
    SMALL;
  }

  @Param Size size;

  // Whether to ensure there is a matching character in the first position
  // to force the trimming code to run.
  @Param("false") boolean forceSlow;

  // Use web-derived sampler.
  @Param("false") boolean web;

  private CharMatcher matcher;
  private String string;

  // Caliper invokes setUp() after injecting params
  @BeforeExperiment void setUp() {
    this.matcher = precomputed ? config.matcher.precomputed() : config.matcher;
    if (size == Size.SMALL) {
      BitSet tmp = new BitSet();
      matcher.setBits(tmp);
      int matchedCharCount = tmp.cardinality();
      this.matcher = SmallCharMatcher.from(tmp, "");
    }
    this.string = checkString(length, percent, config.matchingChars,
        new Random(), forceSlow, web);
  }

  // Caliper recognizes int-parameter methods beginning with "time"

  @Benchmark int trimAndCollapseFromString(int reps) {
    int dummy = 0;
    for (int i = 0; i < reps; i++) {
      dummy += matcher.trimAndCollapseFrom(string, '!').length();
    }
    return dummy;
  }

  @Benchmark int matches(int reps) {
    int dummy = 0;
    for (int i = 0; i < reps; i++) {
      dummy += matcher.matches(string.charAt(i % string.length())) ? 1 : 0;
    }
    return dummy;
  }

  private static final String NONMATCHING_CHARS =
      "abcdefghijklmnopqrstuvwxyz0123456789";

  private static String checkString(int length, int percent,
      String matchingChars, Random rand, boolean forceSlow, boolean web) {
    // Check whether we should ignore everything else and pull from the web.
    if (web) {
      StringBuilder builder = new StringBuilder(length);
      CharSamples sampler = new CharSamples(rand);
      for (int i = 0; i < length; i++) {
        int cp = sampler.nextCodePoint();
        builder.appendCodePoint(cp);
      }
      return builder.toString();
    }
    // Use a shuffled index array to ensure constant percentage of matching
    // characters
    List<Integer> list = Lists.newArrayList();
    for (int i = 0; i < length; i++) {
      list.add(i);
    }
    Collections.shuffle(list, rand);
    if (forceSlow) {
      // Move zero index to front to force a matching character (if percent > 0)
      list.set(list.indexOf(0), list.get(0));
      list.set(0, 0);
    }
    // Get threshold in the range [0, length], rounding up to ensure that non
    // zero percent values result in a non-zero threshold (so we always have at
    // least one matching character).
    int threshold = ((percent * length) + 99) / 100;
    StringBuilder builder = new StringBuilder(length);
    for (int n = 0; n < length; n++) {
      builder.append(randomCharFrom(
          list.get(n) >= threshold ? NONMATCHING_CHARS : matchingChars, rand));
    }
    return builder.toString();
  }

  private static char randomCharFrom(String s, Random rand) {
    return s.charAt(rand.nextInt(s.length()));
  }

  /**
  * Provides samples on a random distribution derived from the web.
  *
  * Adapted from data provided by Mark Davis.
  *
  * @author Christopher Swenson
  */
  static class CharSamples {

   static {
     populateProb1();
     populateProb2();
     populateChars1();
     populateChars2();
   }

   private final Random random;

   public CharSamples(Random random) {
     this.random = random;
   }
   public int nextCodePoint() {
     int needle = random.nextInt(sum);
     int l = 0;
     int r = prob.length - 1;
     int c = prob.length / 2;
     int lv = prob[l];
     int rv = prob[r];
     int cv = prob[c];

     while (true) {
       if (needle == cv) {
         return chars[c - 1];
       } else if ((lv <= needle) && (needle < cv)) {
         return chars[l];
       } else if (needle == rv) {
         return chars[r];
       } else if (needle < cv) {
         rv = cv;
         r = c;
         c = l + (r - l) / 2;
         cv = prob[c];
       } else if (needle == cv) {
         return chars[c];
       } else {
         lv = cv;
         l = c;
         c = l + (r - l) / 2;
         cv = prob[c];
       }
     }
   }

   private int sum = 69552218;
   private static int[] prob;

   private static void populateProb1() {
     prob = new int[10003];
     int[] temp = new int[] {0, 2998461, 11968276, 18768077, 22489668,
       25564867, 28566474, 31178037, 33583728, 35906053, 38220254, 40430228,
       42605383, 44136051, 45417665, 46672307, 46782210, 47875442, 48928896,
       49849977, 49926463, 50685835, 51384820, 51997588, 52562977, 53114810,
       53662681, 54154198, 54201051, 54247649, 54709396, 55150464, 55558189,
       55956271, 56255010, 56537443, 56790560, 57034843, 57274138, 57485651,
       57690645, 57894136, 58095179, 58290586, 58478703, 58657046, 58833174,
       58979618, 59118214, 59252316, 59383011, 59511468, 59616000, 59719717,
       59822765, 59924337, 60018141, 60102715, 60103512, 60111276, 60187497,
       60261002, 60332050, 60400395, 60463530, 60525044, 60586535, 60592498,
       60651542, 60708760, 60765356, 60820799, 60876057, 60926360, 60976475,
       61026421, 61074255, 61118922, 61163456, 61207355, 61251147, 61293399,
       61334924, 61375951, 61416927, 61457584, 61497222, 61501126, 61539952,
       61577967, 61615858, 61652895, 61689599, 61726065, 61762110, 61796817,
       61831379, 61865281, 61898336, 61930814, 61963212, 61995571, 62027746,
       62059880, 62091953, 62123862, 62155726, 62187494, 62218025, 62247942,
       62277854, 62307509, 62336275, 62364822, 62393339, 62421575, 62449112,
       62476556, 62503994, 62531165, 62533882, 62536554, 62563178, 62589569,
       62615931, 62641977, 62667819, 62670393, 62672941, 62698398, 62723810,
       62748828, 62773421, 62773660, 62797528, 62820871, 62823180, 62845858,
       62868387, 62890814, 62913180, 62935449, 62957034, 62978440, 62999686,
       63020821, 63041849, 63062713, 63082956, 63102958, 63122877, 63142650,
       63162263, 63181752, 63201214, 63220472, 63239711, 63258362, 63276998,
       63295503, 63313936, 63332203, 63350395, 63368456, 63386448, 63388247,
       63405634, 63407359, 63424261, 63441134, 63457698, 63474247, 63490783,
       63507308, 63523723, 63539975, 63556168, 63572196, 63587834, 63603467,
       63619061, 63634602, 63650139, 63665668, 63681137, 63696535, 63698072,
       63713405, 63728710, 63743997, 63759244, 63774378, 63789477, 63804212,
       63818898, 63833577, 63848192, 63862616, 63877034, 63891215, 63905360,
       63919315, 63933131, 63946873, 63960526, 63974167, 63987674, 64001139,
       64014592, 64028011, 64041415, 64054809, 64068126, 64081417, 64094632,
       64107536, 64120332, 64133044, 64145616, 64158121, 64170496, 64182865,
       64195233, 64207588, 64219849, 64232094, 64244320, 64256504, 64257719,
       64269791, 64281807, 64293783, 64305588, 64306765, 64318504, 64330211,
       64341904, 64353578, 64365252, 64366419, 64378068, 64389716, 64401322,
       64412871, 64424406, 64425552, 64426689, 64437977, 64449132, 64460284,
       64471315, 64482340, 64493269, 64503956, 64514601, 64525226, 64535778,
       64546326, 64556767, 64567140, 64577453, 64587746, 64598011, 64608256,
       64608358, 64618492, 64628579, 64638653, 64648727, 64658764, 64668799,
       64678680, 64688543, 64698398, 64708082, 64717757, 64727380, 64736982,
       64746557, 64756118, 64765654, 64775155, 64784592, 64794024, 64803433,
       64812780, 64822087, 64831283, 64840465, 64849520, 64858567, 64867599,
       64876612, 64885585, 64894553, 64903472, 64912373, 64921249, 64930038,
       64938750, 64947452, 64948320, 64956991, 64965638, 64974277, 64982885,
       64991466, 65000015, 65008563, 65017094, 65025571, 65033995, 65042379,
       65050716, 65059035, 65067338, 65075627, 65076455, 65084727, 65092982,
       65101144, 65109266, 65117373, 65125479, 65133578, 65141657, 65149726,
       65150531, 65158555, 65166553, 65174472, 65182377, 65190260, 65198136,
       65205979, 65206763, 65214595, 65222402, 65230135, 65237858, 65245556,
       65253253, 65260922, 65261686, 65269318, 65276950, 65284569, 65292163,
       65299687, 65307200, 65307275, 65314762, 65322226, 65329664, 65337073,
       65344451, 65351800, 65359136, 65366462, 65373775, 65381087, 65388284,
       65395469, 65402651, 65409830, 65417003, 65424168, 65431331, 65438487,
       65445595, 65452672, 65459721, 65466766, 65473795, 65480823, 65487847,
       65494824, 65501797, 65508770, 65515732, 65522693, 65529646, 65536520,
       65537207, 65537893, 65538579, 65545430, 65552241, 65559039, 65565814,
       65572562, 65579296, 65586020, 65592716, 65593382, 65600037, 65606605,
       65613147, 65619640, 65626071, 65632496, 65638918, 65645310, 65645945,
       65652280, 65652912, 65659168, 65665415, 65671631, 65677833, 65684025,
       65684641, 65690780, 65696909, 65703021, 65709132, 65715239, 65721340,
       65727438, 65733535, 65739617, 65745695, 65751753, 65757765, 65763760,
       65769744, 65775699, 65781646, 65787588, 65793525, 65799461, 65805374,
       65811283, 65817190, 65823078, 65823666, 65824253, 65830101, 65835942,
       65841755, 65847563, 65853354, 65859098, 65864810, 65870519, 65876183,
       65881822, 65887437, 65893045, 65898651, 65904246, 65909707, 65915151,
       65920583, 65925999, 65931410, 65936817, 65942193, 65947567, 65952934,
       65958289, 65963637, 65968969, 65974293, 65974825, 65980140, 65985417,
       65990672, 65995914, 66001153, 66006392, 66011615, 66012137, 66017334,
       66022528, 66027719, 66032905, 66033422, 66038587, 66043749, 66048910,
       66054066, 66059218, 66064370, 66069493, 66070005, 66075122, 66080220,
       66085315, 66090410, 66095497, 66100582, 66105664, 66110746, 66115813,
       66120879, 66125928, 66130971, 66131475, 66136498, 66141516, 66146527,
       66151533, 66156526, 66161499, 66166472, 66171429, 66176377, 66181315,
       66186228, 66186719, 66191625, 66196528, 66196577, 66201473, 66206365,
       66206854, 66211740, 66216606, 66221467, 66226320, 66231162, 66231645,
       66236468, 66241285, 66246076, 66250853, 66255621, 66260387, 66265121,
       66269852, 66274579, 66279293, 66284006, 66288711, 66293414, 66298061,
       66302706, 66307341, 66311963, 66316582, 66321199, 66325797, 66330382,
       66334965, 66339540, 66344108, 66348674, 66353233, 66357788, 66362332,
       66366874, 66371412, 66375949, 66380462, 66384963, 66385008, 66389507,
       66393988, 66398461, 66402913, 66407358, 66411800, 66416227, 66420650,
       66421092, 66425506, 66429903, 66434282, 66438657, 66443011, 66447364,
       66451711, 66456043, 66460374, 66464695, 66469009, 66473318, 66477619,
       66481905, 66486174, 66490433, 66494685, 66498930, 66503172, 66507405,
       66511629, 66515843, 66520045, 66524244, 66528437, 66532628, 66536801,
       66540968, 66545132, 66549288, 66553436, 66557577, 66561711, 66565840,
       66569963, 66570004, 66574103, 66578201, 66582298, 66582707, 66583115,
       66587194, 66591270, 66595323, 66599360, 66603386, 66607410, 66611432,
       66615421, 66619394, 66623366, 66623763, 66627728, 66631691, 66635652,
       66639601, 66643544, 66647482, 66651390, 66655298, 66659177, 66663029,
       66666880, 66670725, 66674569, 66678395, 66682219, 66686042, 66689844,
       66693646, 66697442, 66701236, 66705023, 66708801, 66712574, 66716338,
       66720099, 66723857, 66727581, 66731302, 66735016, 66738729, 66742440,
       66746147, 66749838, 66753521, 66757203, 66757571, 66761249, 66764927,
       66768604, 66772257, 66775909, 66779541, 66783159, 66786773, 66790376,
       66793962, 66797546, 66801127, 66804703, 66808262, 66811818, 66815367,
       66818912, 66822449, 66825986, 66829521, 66833055, 66836582, 66840106,
       66843624, 66847140, 66850656, 66854170, 66857658, 66861130, 66864598,
       66868064, 66871527, 66874984, 66878430, 66881873, 66885312, 66888746,
       66892179, 66895608, 66899030, 66902433, 66905822, 66909208, 66912593,
       66915978, 66919361, 66922743, 66926120, 66929492, 66932854, 66936205,
       66939548, 66942882, 66946210, 66949528, 66949859, 66953164, 66956467,
       66959762, 66960091, 66963379, 66966665, 66969950, 66973229, 66976498,
       66979762, 66983021, 66986279, 66989531, 66992782, 66996030, 66999275,
       67002518, 67005760, 67008993, 67012220, 67015446, 67018671, 67018993,
       67022210, 67025425, 67028640, 67031851, 67035058, 67038263, 67041459,
       67044653, 67047839, 67051016, 67054190, 67057359, 67060524, 67063687,
       67066836, 67069985, 67073112, 67076238, 67079355, 67082471, 67085585,
       67088688, 67091790, 67094862, 67095169, 67098228, 67101266, 67101568,
       67104586, 67107601, 67110615, 67110618, 67110621, 67113616, 67116609,
       67119594, 67122578, 67125559, 67128533, 67131506, 67134473, 67137436,
       67140397, 67143358, 67146316, 67149268, 67152216, 67155163, 67158106,
       67161049, 67163991, 67166929, 67167222, 67170149, 67173074, 67175993,
       67178907, 67181820, 67184732, 67187640, 67190545, 67193440, 67193729,
       67196611, 67199490, 67202361, 67205225, 67208088, 67208374, 67211232,
       67214088, 67216942, 67219795, 67222648, 67225497, 67228341, 67231184,
       67231468, 67231752, 67234590, 67237424, 67240250, 67243069, 67245884,
       67248698, 67251505, 67254310, 67257109, 67259903, 67262692, 67265473,
       67265751, 67268529, 67271305, 67274079, 67276851, 67279620, 67282388,
       67285155, 67287917, 67290675, 67293433, 67296185, 67298937, 67299212,
       67301957, 67304700, 67307442, 67310183, 67312919, 67315644, 67318366,
       67321087, 67323805, 67326518, 67329224, 67331930, 67331957, 67334652,
       67337347, 67340039, 67342725, 67345383, 67348017, 67350646, 67353274,
       67355896, 67358502, 67361108, 67363707, 67366305, 67368903, 67371499,
       67374088, 67376677, 67379265, 67381850, 67384431, 67384689, 67387266,
       67389841, 67392403, 67394964, 67397525, 67397781, 67400338, 67402890,
       67405435, 67407979, 67410522, 67413058, 67415590, 67418115, 67420637,
       67423158, 67423410, 67425925, 67428434, 67430942, 67433448, 67435952,
       67438456, 67440953, 67443448, 67445941, 67446190, 67446439, 67448925,
       67451408, 67453886, 67456359, 67458828, 67461289, 67463747, 67466201,
       67468640, 67471077, 67473514, 67475948, 67478379, 67478622, 67481044,
       67483466, 67485887, 67488300, 67488541, 67490945, 67493342, 67495737,
       67498130, 67500519, 67502886, 67505248, 67507610, 67509969, 67512326,
       67514681, 67514916, 67517263, 67519605, 67521947, 67524283, 67526618,
       67528949, 67531278, 67533606, 67535931, 67538254, 67540576, 67542898,
       67545217, 67547535, 67549852, 67552168, 67554484, 67556799, 67559112,
       67561425, 67563731, 67566034, 67566057, 67568355, 67570651, 67570880,
       67573165, 67575449, 67577733, 67580011, 67582284, 67584546, 67586803,
       67589060, 67591315, 67593569, 67595817, 67598064, 67600303, 67602540,
       67604776, 67607003, 67609227, 67611449, 67613666, 67615878, 67616099,
       67618306, 67620513, 67622701, 67624888, 67627074, 67629256, 67631437,
       67631655, 67633831, 67635996, 67636212, 67638368, 67640522, 67642669,
       67644814, 67646957, 67649094, 67651228, 67653359, 67655488, 67657613,
       67659737, 67659949, 67660161, 67662279, 67664392, 67666501, 67668609,
       67670712, 67670733, 67672832, 67674930, 67677025, 67679119, 67679328,
       67681415, 67683499, 67685582, 67685790, 67687869, 67689943, 67692016,
       67692223, 67694292, 67696359, 67698420, 67700476, 67702531, 67704585,
       67704790, 67706839, 67708886, 67710931, 67712976, 67715019, 67717058,
       67719096, 67721131, 67723166, 67723369, 67725396, 67727421, 67729443,
       67731464, 67733480, 67735496, 67737505, 67737507, 67739505, 67741499,
       67743493, 67745487, 67747480, 67749473, 67749672, 67749871, 67751859,
       67753842, 67755823, 67757804, 67758002, 67759979, 67761956, 67763927,
       67765898, 67767867, 67769836, 67771802, 67773766, 67775729, 67775925,
       67777878, 67779822, 67781765, 67783706, 67785645, 67787584, 67789521,
       67791457, 67793391, 67795324, 67797256, 67799187, 67801112, 67803035,
       67804948, 67805139, 67807046, 67808951, 67810850, 67812744, 67814625,
       67814813, 67815001, 67816875, 67818748, 67820620, 67822492, 67822679,
       67824547, 67826413, 67828276, 67830137, 67830323, 67832181, 67834039,
       67835895, 67837751, 67839606, 67841460, 67843311, 67845160, 67847008,
       67848856, 67850698, 67850882, 67852720, 67854558, 67856395, 67856578,
       67858405, 67860227, 67862048, 67862230, 67862412, 67864231, 67866048,
       67867865, 67869682, 67871486, 67873285, 67875082, 67876877, 67878672,
       67880467, 67882261, 67884054, 67885846, 67887635, 67889422, 67891209,
       67892994, 67894775, 67896550, 67898323, 67900092, 67901854, 67902030,
       67903781, 67905532, 67905707, 67907456, 67909203, 67910949, 67912682,
       67914411, 67916139, 67917864, 67919589, 67921312, 67923034, 67924755,
       67926471, 67928182, 67928353, 67930062, 67931771, 67933479, 67935181,
       67936882, 67936899, 67938598, 67940294, 67941990, 67943685, 67945378,
       67947063, 67948746, 67950429, 67952112, 67953785, 67955453, 67955619,
       67957277, 67958934, 67960587, 67962238, 67962403, 67962568, 67962733,
       67964382, 67966030, 67967676, 67969322, 67970966, 67972608, 67974249,
       67974413, 67976046, 67977677, 67977840, 67979467, 67981094, 67982720,
       67984338, 67985950, 67987561, 67987722, 67989331, 67990939, 67992547,
       67994154, 67995761, 67997368, 67998971, 68000573, 68002174, 68002190,
       68003789, 68005388, 68006985, 68008581, 68010176, 68011768, 68013356,
       68014940, 68016522, 68016680, 68016838, 68018416, 68019994, 68021571,
       68023147, 68024723, 68026296, 68027868, 68029439, 68029596, 68031162,
       68032724, 68034286, 68034442, 68034598, 68036157, 68037716, 68039273,
       68040827, 68042380, 68043932, 68045481, 68047024, 68048567, 68050106,
       68051641, 68051794, 68053323, 68054849, 68056374, 68057898, 68059417,
       68060934, 68062451, 68063967, 68065480, 68066991, 68067142, 68068651,
       68070157, 68071660, 68071675, 68071690, 68073187, 68074678, 68074827,
       68076316, 68077805, 68079293, 68080780, 68082265, 68083750, 68085232,
       68086713, 68088194, 68089673, 68091149, 68092623, 68094096, 68095568,
       68095715, 68095862, 68097331, 68098796, 68100261, 68101726, 68103190,
       68104654, 68106116, 68107575, 68109033, 68110490, 68111945, 68113396,
       68114845, 68116294, 68117741, 68119184, 68119328, 68120765, 68122201,
       68123633, 68125064, 68125207, 68126633, 68128059, 68129483, 68130906,
       68132328, 68133749, 68135154, 68135168, 68136567, 68137966, 68139365,
       68140762, 68142156, 68143550, 68144943, 68146336, 68147729, 68149120,
       68150511, 68151902, 68152041, 68153429, 68154816, 68156203, 68157588,
       68158970, 68160352, 68161731, 68163110, 68164486, 68165861, 68167233,
       68167370, 68168738, 68168874, 68170229, 68171584, 68172937, 68174282,
       68175625, 68176966, 68177100, 68177234, 68177368, 68177502, 68178839,
       68180175, 68181511, 68182844, 68184177, 68185509, 68186838, 68188166,
       68189493, 68190819, 68192144, 68193466, 68194788, 68196109, 68197427,
       68198744, 68200060, 68201375, 68202688, 68204000, 68205311, 68205442,
       68205573, 68206880, 68208187, 68209491, 68210794, 68212097, 68213398,
       68214697, 68215996, 68217293, 68218589, 68219885, 68221180, 68222474,
       68223766, 68223895, 68225183, 68226470, 68227755, 68229040, 68230324,
       68231607, 68232889, 68234167, 68235443, 68236719, 68237994, 68239269,
       68240543, 68241817, 68243090, 68244362, 68245634, 68246903, 68248172,
       68249441, 68250709, 68251977, 68253245, 68254509, 68255772, 68257035,
       68258296, 68259555, 68260813, 68262068, 68263322, 68264576, 68265829,
       68267082, 68268335, 68269587, 68270836, 68272083, 68273330, 68274574,
       68275817, 68277060, 68278302, 68279543, 68280781, 68282018, 68283253,
       68284485, 68285714, 68286943, 68288171, 68289393, 68290615, 68291836,
       68293055, 68294272, 68295488, 68296702, 68297916, 68299129, 68300341,
       68300462, 68301669, 68302873, 68304077, 68305281, 68306485, 68307687,
       68308888, 68310089, 68311290, 68311302, 68312501, 68313699, 68314897,
       68316094, 68317291, 68318486, 68318605, 68319793, 68320981, 68322168,
       68323354, 68324539, 68325724, 68326909, 68328093, 68329275, 68330457,
       68331639, 68331757, 68332935, 68334112, 68335289, 68336466, 68337640,
       68338813, 68339982, 68341148, 68342313, 68343474, 68343590, 68344749,
       68345908, 68347065, 68348221, 68349377, 68350532, 68351686, 68352840,
       68353992, 68354107, 68354222, 68355370, 68356516, 68357654, 68358792,
       68359926, 68361053, 68362179, 68363301, 68364423, 68365544, 68366659,
       68367772, 68368884, 68368995, 68369106, 68370215, 68371323, 68372430,
       68373537, 68374643, 68375749, 68376852, 68377953, 68379052, 68380151,
       68381249, 68382346, 68383442, 68384537, 68385632, 68386726, 68387820,
       68388913, 68390006, 68391099, 68392191, 68393280, 68394368, 68395455,
       68396542, 68397626, 68398710, 68399794, 68400877, 68401959, 68403041,
       68404123, 68405204, 68406285, 68407366, 68408447, 68409528, 68409636,
       68409744, 68410822, 68411900, 68412978, 68414051, 68415123, 68416192,
       68417259, 68418325, 68419391, 68420452, 68421513, 68422572, 68423631,
       68424690, 68425749, 68426808, 68427867, 68428924, 68429981, 68431037,
       68432093, 68433147, 68434200, 68435249, 68436298, 68437346, 68438394,
       68439442, 68440489, 68441533, 68442576, 68443619, 68444657, 68445694,
       68446730, 68447764, 68447867, 68447970, 68448998, 68450025, 68451052,
       68452077, 68453102, 68454125, 68455147, 68456169, 68457187, 68458205,
       68459223, 68460241, 68461258, 68462274, 68463289, 68464303, 68465317,
       68466329, 68466430, 68466531, 68467540, 68468548, 68469555, 68470560,
       68471565, 68472568, 68473570, 68474572, 68475574, 68475575, 68475576,
       68476575, 68477573, 68478570, 68479566, 68480562, 68481557, 68482551,
       68483545, 68484539, 68484638, 68484737, 68484836, 68485825, 68486811,
       68487796, 68488777, 68488875, 68488973, 68489952, 68490931, 68491908,
       68492884, 68493859, 68494834, 68495809, 68496783, 68497756, 68498728,
       68498825, 68498922, 68499890, 68500858, 68501825, 68502791, 68503757,
       68504720, 68505683, 68506645, 68506741, 68507700, 68508658, 68509611,
       68510562, 68511513, 68512464, 68513415, 68514366, 68515317, 68515412,
       68515507, 68515602, 68515697, 68515792, 68515887, 68516836, 68517785,
       68518734, 68519683, 68520631, 68521578, 68522525, 68523470, 68524413,
       68525354, 68526295, 68527236, 68528173, 68529109, 68530045, 68530981,
       68531915, 68532849, 68533781, 68534713, 68535645, 68536576, 68537507,
       68537600, 68537693, 68538622, 68539550, 68540476, 68541399, 68542320,
       68542412, 68542504, 68543423, 68544342, 68545260, 68546176, 68547092,
       68548007, 68548922, 68549834, 68550745, 68551656, 68551747, 68552655,
       68553560, 68554465, 68555370, 68556274, 68557177, 68558080, 68558982,
       68559883, 68560784, 68561685, 68561694, 68562592, 68563490, 68564388,
       68565285, 68566181, 68567077, 68567973, 68568869, 68569765, 68570659,
       68571552, 68572444, 68573336, 68574228, 68575120, 68576011, 68576902,
       68576991, 68577880, 68578768, 68579655, 68580541, 68581427, 68582313,
       68583196, 68584078, 68584960, 68585841, 68585929, 68586808, 68587685,
       68588561, 68589437, 68590313, 68591189, 68592065, 68592940, 68593027,
       68593894, 68594760, 68595626, 68596492, 68597356, 68598218, 68599077,
       68599936, 68600795, 68601652, 68602508, 68603363, 68604217, 68605070,
       68605922, 68606774, 68607626, 68608477, 68608562, 68609411, 68610260,
       68611107, 68611954, 68612800, 68613646, 68614491, 68615336, 68616179,
       68617021, 68617862, 68618703, 68618787, 68618871, 68619710, 68620548,
       68621386, 68622222, 68623058, 68623893, 68624728, 68625563, 68626397,
       68627231, 68628064, 68628896, 68629728, 68630559, 68631390, 68632219,
       68633047, 68633875, 68634702, 68635529, 68636356, 68637183, 68638009,
       68638833, 68639656, 68640478, 68641299, 68642120, 68642202, 68643021,
       68643840, 68644659, 68645477, 68646294, 68647111, 68647927, 68648743,
       68649559, 68650373, 68651187, 68651998, 68652803, 68653607, 68654410,
       68655213, 68656016, 68656818, 68657620, 68657628, 68658427, 68659226,
       68660024, 68660822, 68661620, 68662417, 68663214, 68664010, 68664806,
       68665601, 68666395, 68667189, 68667982, 68668774, 68669565, 68670356,
       68671147, 68671935, 68672723, 68673509, 68674295, 68675079, 68675862,
       68675940, 68676719, 68677498, 68678275, 68679051, 68679826, 68680601,
       68681375, 68682149, 68682922, 68683694, 68684466, 68685237, 68685314,
       68685391, 68686160, 68686929, 68687697, 68688464, 68689230, 68689996,
       68690760, 68691523, 68692285, 68693046, 68693122, 68693198, 68693956,
       68694713, 68695468, 68696222, 68696976, 68697730, 68698483, 68699235,
       68699986, 68700737, 68701486, 68702235, 68702984, 68703732, 68704480,
       68705226, 68705972, 68706718, 68707463, 68708208, 68708953, 68709697,
       68710440, 68711183, 68711926, 68712667, 68713408, 68714145, 68714882,
       68715618, 68716354, 68717090, 68717825, 68718559, 68719292, 68720024,
       68720753, 68721482, 68722209, 68722935, 68723660, 68724384, 68725108,
       68725832, 68726555, 68727278, 68728001, 68728723, 68728795, 68729514,
       68730233, 68730951, 68731669, 68732385, 68733101, 68733816, 68734528,
       68735240, 68735951, 68736022, 68736093, 68736164, 68736235, 68736944,
       68737653, 68738362, 68739069, 68739775, 68740481, 68741187, 68741892,
       68742597, 68743301, 68744005, 68744707, 68745409, 68746110, 68746811,
       68746818, 68746825, 68747524, 68748223, 68748922, 68749620, 68750315,
       68751009, 68751703, 68752397, 68753090, 68753783, 68754474, 68755165,
       68755856, 68755925, 68755994, 68756683, 68757371, 68758059, 68758746,
       68759433, 68760119, 68760805, 68761488, 68762171, 68762852, 68763533,
       68764214, 68764893, 68765572, 68766251, 68766930, 68767608, 68768286,
       68768963, 68769640, 68770316, 68770992, 68771667, 68772342, 68773015,
       68773688, 68774360, 68775032, 68775703, 68776374, 68776441, 68777110,
       68777777, 68778444, 68779111, 68779778, 68780444, 68781110, 68781776,
       68782441, 68783106, 68783770, 68784432, 68785094, 68785755, 68786416,
       68786482, 68786548, 68787207, 68787866, 68788524, 68789182, 68789840,
       68790497, 68791154, 68791810, 68792466, 68793122, 68793777, 68794432,
       68795087, 68795741, 68796395, 68797048, 68797700, 68798352, 68799004,
       68799656, 68800307, 68800372, 68800437, 68801086, 68801735, 68802384,
       68803033, 68803681, 68804329, 68804976, 68805621, 68806265, 68806908,
       68807551, 68808194, 68808836, 68809477, 68810118, 68810759, 68811400,
       68811464, 68811528, 68811592, 68812230, 68812868, 68813506, 68814141,
       68814776, 68815411, 68816045, 68816679, 68817311, 68817943, 68818571,
       68819199, 68819826, 68820452, 68821078, 68821704, 68822329, 68822954,
       68823579, 68824203, 68824826, 68825449, 68826071, 68826133, 68826195,
       68826257, 68826319, 68826381, 68827000, 68827619, 68828237, 68828855,
       68829473, 68830090, 68830707, 68831323, 68831938, 68832553, 68833167,
       68833781, 68834395, 68835008, 68835621, 68836233, 68836842, 68837450,
       68838057, 68838663, 68839269, 68839874, 68840479, 68841084, 68841689,
       68842293, 68842897, 68843501, 68844105, 68844708, 68845310, 68845912,
       68845918, 68845924, 68845930, 68845936, 68846535, 68847134, 68847733,
       68848332, 68848930, 68849527, 68850124, 68850720, 68851315, 68851909,
       68852503, 68853096, 68853688, 68854280, 68854872, 68855464, 68856056,
       68856115, 68856174, 68856233, 68856822, 68857411, 68858000, 68858589,
       68859178, 68859766, 68860353, 68860939, 68861523, 68862107, 68862691,
       68863274, 68863857, 68864438, 68865019, 68865600, 68865658, 68866237,
       68866816, 68867395, 68867973, 68868551, 68869129, 68869706, 68870283,
       68870860, 68871437, 68872013, 68872589, 68873164, 68873739, 68874313,
       68874887, 68875461, 68876035, 68876609, 68877183, 68877756, 68878329,
       68878901, 68879473, 68880045, 68880617, 68881188, 68881759, 68882328,
       68882897, 68883465, 68884033, 68884601, 68885169, 68885735, 68886301,
       68886865, 68887428, 68887991, 68888554, 68889116, 68889678, 68890239,
       68890295, 68890854, 68891412, 68891969, 68892526, 68893083, 68893639,
       68894195, 68894751, 68895307, 68895862, 68896416, 68896970, 68897524,
       68898078, 68898631, 68899182, 68899733, 68900284, 68900835, 68901386,
       68901937, 68902488, 68902543, 68902598, 68902653, 68902708, 68903257,
       68903806, 68904354, 68904902, 68905450, 68905996, 68906540, 68907084,
       68907628, 68908172, 68908716, 68909260, 68909803, 68910345, 68910887,
       68911429, 68911971, 68912512, 68913053, 68913594, 68913648, 68914187,
       68914725, 68915262, 68915798, 68916334, 68916870, 68917406, 68917941,
       68918475, 68919009, 68919543, 68920076, 68920608, 68921140, 68921672,
       68922204, 68922735, 68923266, 68923797, 68924328, 68924859, 68925390,
       68925919, 68926448, 68926975, 68927502, 68928029, 68928555, 68929081,
       68929606, 68930131, 68930656, 68931180, 68931703, 68932226, 68932749,
       68933271, 68933792, 68934313, 68934365, 68934884, 68935403, 68935922,
       68936440, 68936957, 68937474, 68937991, 68938507, 68939023, 68939538,
       68940053, 68940567, 68941081, 68941595, 68942108, 68942621, 68943133,
       68943645, 68944157, 68944669, 68945180, 68945231, 68945282, 68945333,
       68945842, 68946351, 68946860, 68947369, 68947877, 68948385, 68948893,
       68949400, 68949906, 68950412, 68950918, 68951424, 68951929, 68952434,
       68952938, 68953441, 68953944, 68954447, 68954949, 68955450, 68955949,
       68956448, 68956947, 68957445, 68957943, 68958441, 68958938, 68959435,
       68959932, 68960429, 68960926, 68961422, 68961917, 68962412, 68962907,
       68963401, 68963894, 68964387, 68964880, 68965373, 68965866, 68966359,
       68966852, 68967345, 68967837, 68968329, 68968821, 68968870, 68968919,
       68968968, 68969457, 68969945, 68970432, 68970919, 68971405, 68971891,
       68972376, 68972861, 68973346, 68973831, 68974315, 68974797, 68975278,
       68975759, 68976240, 68976288, 68976336, 68976815, 68977294, 68977772,
       68978250, 68978727, 68979204, 68979680, 68980156, 68980632, 68981108,
       68981583, 68982057, 68982530, 68983003, 68983475, 68983947, 68984419,
       68984891, 68985363, 68985834, 68986305, 68986352, 68986399, 68986868,
       68987337, 68987806, 68988275, 68988743, 68989211, 68989679, 68990147,
       68990615, 68991082, 68991549, 68992016, 68992482, 68992948, 68993414,
       68993879, 68994344, 68994809, 68995274, 68995739, 68996203, 68996667,
       68997131, 68997595, 68998058, 68998521, 68998983, 68999444, 68999905,
       69000366, 69000827, 69001288, 69001746, 69002204, 69002661, 69003118,
       69003575, 69004032, 69004488, 69004944, 69005400, 69005855, 69006310,
       69006765, 69007220, 69007674, 69008128, 69008582, 69009036, 69009489,
       69009942, 69010395, 69010847, 69011299, 69011751, 69012203, 69012655,
       69013106, 69013557, 69013602, 69013647, 69014096, 69014545, 69014993,
       69015441, 69015889, 69016337, 69016785, 69017232, 69017679, 69018126,
       69018573, 69019019, 69019465, 69019911, 69020357, 69020802, 69021247,
       69021692, 69022137, 69022581, 69023025, 69023469, 69023913, 69024356,
       69024798, 69025240, 69025682, 69026124, 69026565, 69027006, 69027447,
       69027491, 69027929, 69028366, 69028803, 69029238, 69029673, 69030108,
       69030543, 69030977, 69031410, 69031843, 69032275, 69032318, 69032361,
       69032404, 69032447, 69032876, 69033305, 69033734, 69034163, 69034592,
       69035020, 69035448, 69035876, 69036302, 69036727, 69037152, 69037577,
       69038002, 69038427, 69038852, 69039276, 69039699, 69040121, 69040543,
       69040964, 69041385, 69041806, 69042227, 69042648, 69042690, 69043109,
       69043528, 69043947, 69044366, 69044785, 69045203, 69045619, 69046034,
       69046449, 69046863, 69047275, 69047687, 69048099, 69048511, 69048923,
       69049335, 69049746, 69050157, 69050198, 69050239, 69050280, 69050689,
       69051098, 69051507, 69051916, 69052323, 69052730, 69053137, 69053544,
       69053950, 69054356, 69054761, 69055166, 69055570, 69055974, 69056377,
       69056780, 69057183, 69057586, 69057989, 69058392, 69058795, 69059197,
       69059599, 69060000, 69060401, 69060802, 69061203, 69061600, 69061997,
       69062394, 69062790, 69063186, 69063582, 69063978, 69064373, 69064768,
       69065163, 69065558, 69065953, 69066348, 69066742, 69067136, 69067530,
       69067924, 69068317, 69068710, 69069102, 69069493, 69069884, 69070275,
       69070314, 69070353, 69070392, 69070431, 69070820, 69071209, 69071597,
       69071985, 69072373, 69072760, 69073146, 69073531, 69073916, 69074301,
       69074685, 69075069, 69075453, 69075836, 69076219, 69076602, 69076984,
       69077365, 69077746, 69078127, 69078165, 69078203, 69078241, 69078620,
       69078999, 69079378, 69079757, 69080136, 69080514, 69080892, 69081270,
       69081648, 69082026, 69082404, 69082782, 69083160, 69083538, 69083915,
       69084292, 69084669, 69085046, 69085422, 69085798, 69086174, 69086550,
       69086925, 69087300, 69087675, 69088050, 69088424, 69088798, 69089172,
       69089545, 69089918, 69090291, 69090664, 69091037, 69091409, 69091781,
       69092153, 69092525, 69092896, 69093267, 69093638, 69094009, 69094046,
       69094083, 69094120, 69094157, 69094194, 69094231, 69094600, 69094969,
       69095337, 69095705, 69096073, 69096441, 69096809, 69097177, 69097545,
       69097912, 69098279, 69098645, 69099011, 69099377, 69099742, 69100107,
       69100472, 69100837, 69101201, 69101565, 69101928, 69102291, 69102654,
       69103016, 69103378, 69103740, 69104101, 69104462, 69104823, 69105184,
       69105220, 69105256, 69105292, 69105651, 69106010, 69106369, 69106728,
       69107087, 69107446, 69107805, 69108163, 69108521, 69108879, 69109237,
       69109595, 69109952, 69110309, 69110666, 69111023, 69111380, 69111736,
       69112092, 69112448, 69112803, 69113158, 69113513, 69113867, 69114221,
       69114574, 69114927, 69115280, 69115633, 69115985, 69116337, 69116689,
       69117040, 69117075, 69117110, 69117145, 69117180, 69117215, 69117564,
       69117913, 69118262, 69118611, 69118959, 69119307, 69119654, 69120001,
       69120348, 69120695, 69121041, 69121387, 69121733, 69122078, 69122422,
       69122766, 69123109, 69123452, 69123794, 69124136, 69124478, 69124819,
       69125160, 69125501, 69125842, 69126183, 69126217, 69126251, 69126285,
       69126319, 69126353, 69126692, 69127031, 69127370, 69127709, 69128047,
       69128385, 69128723, 69129060, 69129397, 69129734, 69130070, 69130406,
       69130742, 69131077, 69131411, 69131745, 69132079, 69132413, 69132746,
       69133079, 69133411, 69133743, 69134075, 69134406, 69134737, 69135068,
       69135101, 69135134, 69135167, 69135200, 69135233, 69135266, 69135299,
       69135628, 69135957, 69136286, 69136615, 69136944, 69137272, 69137600,
       69137927, 69138254, 69138581, 69138908, 69139234, 69139560, 69139886,
       69140212, 69140538, 69140863, 69141188, 69141513, 69141838, 69142162,
       69142486, 69142810, 69143134, 69143457, 69143780, 69144103, 69144425,
       69144747, 69145069, 69145391, 69145713, 69146034, 69146355, 69146676,
       69146997, 69147029, 69147061, 69147093, 69147125, 69147157, 69147476,
       69147794, 69148112, 69148430, 69148748, 69149066, 69149383, 69149700,
       69150017, 69150334, 69150650, 69150966, 69151281, 69151596, 69151911,
       69152226, 69152540, 69152854, 69153168, 69153482, 69153796, 69154110,
       69154422, 69154734, 69155046, 69155358, 69155670, 69155981, 69156292,
       69156603, 69156634, 69156665, 69156696, 69157005, 69157314, 69157623,
       69157932, 69158240, 69158548, 69158856, 69159164, 69159472, 69159780,
       69160087, 69160394, 69160701, 69161007, 69161313, 69161619, 69161925,
       69162230, 69162535, 69162840, 69163145, 69163449, 69163753, 69164057,
       69164360, 69164663, 69164966, 69165269, 69165572, 69165875, 69166177,
       69166479, 69166781, 69167083, 69167385, 69167687, 69167989, 69168291,
       69168593, 69168895, 69169196, 69169497, 69169798, 69170099, 69170400,
       69170701, 69170704, 69170707, 69170710, 69171009, 69171308, 69171607,
       69171905, 69172203, 69172501, 69172798, 69173095, 69173392, 69173688,
       69173984, 69174280, 69174576, 69174872, 69175168, 69175463, 69175758,
       69176053, 69176348, 69176643, 69176938, 69177233, 69177528, 69177823,
       69178117, 69178411, 69178704, 69178997, 69179290, 69179583, 69179876,
       69180168, 69180460, 69180752, 69181044, 69181335, 69181364, 69181393,
       69181682, 69181971, 69182260, 69182548, 69182836, 69183124, 69183412,
       69183700, 69183988, 69184276, 69184563, 69184850, 69185137, 69185424,
       69185711, 69185998, 69186284, 69186570, 69186856, 69187142, 69187428,
       69187713, 69187998, 69188283, 69188568, 69188853, 69189138, 69189423,
       69189708, 69189993, 69190277, 69190561, 69190845, 69191128, 69191411,
       69191693, 69191975, 69192257, 69192539, 69192820, 69193101, 69193382,
       69193663, 69193944, 69194225, 69194506, 69194534, 69194562, 69194590,
       69194869, 69195148, 69195427, 69195706, 69195985, 69196264, 69196542,
       69196820, 69197098, 69197376, 69197653, 69197930, 69198207, 69198484,
       69198761, 69199038, 69199314, 69199590, 69199866, 69200140, 69200414,
       69200688, 69200962, 69201235, 69201508, 69201781, 69202054, 69202326,
       69202598, 69202870, 69203142, 69203414, 69203686, 69203958, 69204230,
       69204501, 69204772, 69205043, 69205314, 69205341, 69205368, 69205395,
       69205422, 69205449, 69205718, 69205987, 69206256, 69206525, 69206794,
       69207063, 69207332, 69207601, 69207869, 69208137, 69208405, 69208672,
       69208939, 69209206, 69209473, 69209740, 69210006, 69210272, 69210538,
       69210804, 69211070, 69211336, 69211602, 69211867, 69212132, 69212397,
       69212662, 69212927, 69213191, 69213455, 69213719, 69213983, 69214247,
       69214511, 69214775, 69215038, 69215301, 69215564, 69215827, 69216089,
       69216351, 69216613, 69216875, 69217136, 69217397, 69217658, 69217919,
       69218180, 69218441, 69218702, 69218963, 69218989, 69219015, 69219041,
       69219067, 69219093, 69219352, 69219611, 69219870, 69220129, 69220387,
       69220645, 69220903, 69221161, 69221419, 69221677, 69221935, 69222193,
       69222450, 69222707, 69222964, 69223221, 69223478, 69223735, 69223991,
       69224247, 69224502, 69224757, 69225012, 69225267, 69225522, 69225777,
       69226032, 69226287, 69226542, 69226797, 69227051, 69227305, 69227559,
       69227812, 69228065, 69228318, 69228571, 69228824, 69229077, 69229330,
       69229582, 69229834, 69230086, 69230338, 69230590, 69230842, 69231094,
       69231346, 69231597, 69231848, 69232099, 69232350, 69232601, 69232852,
       69232877, 69232902, 69232927, 69232952, 69232977, 69233002, 69233251,
       69233500, 69233748, 69233996, 69234244, 69234492, 69234739, 69234986,
       69235233, 69235480, 69235727, 69235974, 69236220, 69236466, 69236711,
       69236956, 69237201, 69237446, 69237690, 69237934, 69238178, 69238421,
       69238663, 69238905, 69239147, 69239389, 69239631, 69239873, 69240114,
       69240355, 69240596, 69240837, 69241078, 69241319, 69241560, 69241801,
       69241825, 69241849, 69241873, 69241897, 69241921, 69241945, 69242184,
       69242423, 69242662, 69242901, 69243140, 69243379, 69243618, 69243856,
       69244094, 69244332, 69244570, 69244808, 69245045, 69245282, 69245519,
       69245756, 69245992, 69246228, 69246463, 69246698, 69246933, 69247168,
       69247403, 69247637, 69247871, 69248105, 69248339, 69248573, 69248807,
       69249041, 69249275, 69249509, 69249742, 69249975, 69250208, 69250441,
       69250674, 69250907, 69251140, 69251372, 69251604, 69251836, 69252068,
       69252300, 69252532, 69252764, 69252996, 69253228, 69253460, 69253692,
       69253924, 69254155, 69254386, 69254617, 69254848, 69255079, 69255310,
       69255541, 69255772, 69256003, 69256234, 69256257, 69256280, 69256303,
       69256326, 69256349, 69256372, 69256395, 69256418, 69256647, 69256876,
       69257105, 69257333, 69257561, 69257789, 69258016, 69258243, 69258470,
       69258697, 69258924, 69259150, 69259376, 69259602, 69259828, 69260054,
       69260279, 69260504, 69260729, 69260954, 69261179, 69261404, 69261629,
       69261853, 69262077, 69262301, 69262525, 69262749, 69262973, 69263196,
       69263419, 69263642, 69263865, 69264088, 69264311, 69264534, 69264757,
       69264979, 69265201, 69265423, 69265645, 69265867, 69266089, 69266311,
       69266533, 69266754, 69266975, 69267196, 69267417, 69267439, 69267461,
       69267483, 69267505, 69267527, 69267549, 69267768, 69267987, 69268206,
       69268424, 69268642, 69268860, 69269077, 69269294, 69269511, 69269728,
       69269944, 69270160, 69270376, 69270592, 69270808, 69271024, 69271240,
       69271456, 69271672, 69271887, 69272102, 69272317, 69272532, 69272747,
       69272962, 69273176, 69273390, 69273604, 69273818, 69274032, 69274246,
       69274460, 69274674, 69274888, 69275101, 69275314, 69275527, 69275740,
       69275953, 69276166, 69276379, 69276592, 69276805, 69277018, 69277231,
       69277443, 69277655, 69277867, 69278078, 69278289, 69278500, 69278711,
       69278922, 69279133, 69279344, 69279555, 69279766, 69279977, 69279998,
       69280019, 69280040, 69280061, 69280082, 69280103, 69280312, 69280521,
       69280730, 69280939, 69281148, 69281356, 69281564, 69281772, 69281980,
       69282188, 69282396, 69282604, 69282812, 69283020, 69283228, 69283435,
       69283642, 69283849, 69284056, 69284263, 69284470, 69284676, 69284882,
       69285087, 69285291, 69285495, 69285698, 69285901, 69286104, 69286307,
       69286510, 69286713, 69286915, 69287117, 69287319, 69287521, 69287723,
       69287925, 69288127, 69288329, 69288531, 69288732, 69288933, 69289134,
       69289335, 69289536, 69289737, 69289938, 69290139, 69290141, 69290143,
       69290342, 69290541, 69290740, 69290939, 69291138, 69291337, 69291535,
       69291733, 69291931, 69292128, 69292325, 69292522, 69292719, 69292916,
       69293113, 69293310, 69293507, 69293703, 69293899, 69294095, 69294291,
       69294487, 69294683, 69294879, 69295075, 69295270, 69295465, 69295660,
       69295855, 69296050, 69296245, 69296440, 69296635, 69296830, 69297024,
       69297218, 69297412, 69297606, 69297800, 69297994, 69298188, 69298381,
       69298574, 69298767, 69298960, 69299153, 69299346, 69299539, 69299731,
       69299923, 69300115, 69300307, 69300498, 69300689, 69300880, 69301071,
       69301262, 69301453, 69301644, 69301835, 69302026, 69302217, 69302236,
       69302255, 69302274, 69302293, 69302312, 69302501, 69302690, 69302879,
       69303068, 69303257, 69303446, 69303635, 69303823, 69304011, 69304199,
       69304387, 69304575, 69304763, 69304951, 69305139, 69305327, 69305514,
       69305701, 69305888, 69306075, 69306262, 69306449, 69306636, 69306823,
       69307009, 69307195, 69307381, 69307567, 69307753, 69307939, 69308125,
       69308310, 69308495, 69308680, 69308865, 69309050, 69309235, 69309420,
       69309604, 69309788, 69309972, 69310156, 69310340, 69310524, 69310708,
       69310892, 69311076, 69311260, 69311444, 69311628, 69311811, 69311994,
       69312177, 69312360, 69312543, 69312726, 69312909, 69313092, 69313275,
       69313458, 69313641, 69313823, 69314005, 69314187, 69314369, 69314551,
       69314733, 69314915, 69315097, 69315279, 69315460, 69315478, 69315496,
       69315514, 69315532, 69315550, 69315568, 69315586, 69315604, 69315783,
       69315962, 69316141, 69316320, 69316499, 69316678, 69316857, 69317036,
       69317215, 69317393, 69317571, 69317749, 69317927, 69318105, 69318283,
       69318461, 69318639, 69318817, 69318995, 69319173, 69319351, 69319528,
       69319705, 69319882, 69320059, 69320236, 69320413, 69320590, 69320767,
       69320944, 69321121, 69321298, 69321475, 69321651, 69321827, 69322003,
       69322178, 69322353, 69322528, 69322703, 69322878, 69323053, 69323228,
       69323403, 69323578, 69323752, 69323926, 69324100, 69324274, 69324448,
       69324622, 69324796, 69324970, 69325144, 69325318, 69325491, 69325664,
       69325837, 69326010, 69326183, 69326356, 69326529, 69326702, 69326875,
       69327048, 69327221, 69327393, 69327565, 69327737, 69327909, 69328081,
       69328253, 69328425, 69328596, 69328767, 69328938, 69329109, 69329280,
       69329451, 69329622, 69329793, 69329964, 69329981, 69329998, 69330015,
       69330032, 69330049, 69330066, 69330083, 69330100, 69330117, 69330286,
       69330455, 69330624, 69330793, 69330962, 69331131, 69331300, 69331468,
       69331636, 69331804, 69331972, 69332139, 69332306, 69332473, 69332640,
       69332807, 69332974, 69333140, 69333306, 69333472, 69333638, 69333804,
       69333970, 69334136, 69334301, 69334466, 69334631, 69334796, 69334961,
       69335126, 69335291, 69335456, 69335621, 69335786, 69335951, 69336116,
       69336281, 69336446, 69336611, 69336775, 69336939, 69337103, 69337267,
       69337431, 69337595, 69337759, 69337922, 69338085, 69338248, 69338411,
       69338574, 69338736, 69338898, 69339060, 69339222, 69339384, 69339546,
       69339708, 69339870, 69340032, 69340194, 69340356, 69340518, 69340680,
       69340841, 69341002, 69341163, 69341324, 69341485, 69341646, 69341807,
       69341968, 69342129, 69342290, 69342306, 69342322, 69342338, 69342354,
       69342370, 69342386, 69342402, 69342418, 69342434, 69342593, 69342752,
       69342911, 69343070, 69343229, 69343388, 69343547, 69343705, 69343863,
       69344021, 69344179, 69344337, 69344495, 69344652, 69344809, 69344966,
       69345123, 69345280, 69345437, 69345594, 69345751, 69345908, 69346065,
       69346222, 69346378, 69346534, 69346690, 69346846, 69347002, 69347158,
       69347314, 69347470, 69347626, 69347782, 69347938, 69348094, 69348249,
       69348404, 69348559, 69348714, 69348869, 69349024, 69349179, 69349334,
       69349489, 69349644, 69349798, 69349952, 69350106, 69350260, 69350414,
       69350568, 69350722, 69350876, 69351030, 69351184, 69351338, 69351492,
       69351646, 69351800, 69351953, 69352106, 69352259, 69352412, 69352565,
       69352718, 69352871, 69353023, 69353175, 69353327, 69353479, 69353631,
       69353783, 69353935, 69354087, 69354238, 69354389, 69354540, 69354691,
       69354842, 69354993, 69355144, 69355159, 69355174, 69355189, 69355204,
       69355219, 69355234, 69355249, 69355264, 69355279, 69355428, 69355577,
       69355726, 69355875, 69356024, 69356173, 69356322, 69356471, 69356620,
       69356769, 69356918, 69357067, 69357216, 69357365, 69357514, 69357663,
       69357811, 69357959, 69358107, 69358255, 69358403, 69358551, 69358699,
       69358847, 69358994, 69359141, 69359288, 69359435, 69359582, 69359729,
       69359876, 69360023, 69360170, 69360317, 69360464, 69360611, 69360758,
       69360905, 69361052, 69361199, 69361346, 69361492, 69361638, 69361784,
       69361930, 69362076, 69362222, 69362368, 69362514, 69362659, 69362804,
       69362949, 69363094, 69363239, 69363384, 69363529, 69363674, 69363819,
       69363964, 69364109, 69364254, 69364399, 69364543, 69364687, 69364831,
       69364975, 69365119, 69365263, 69365407, 69365551, 69365695, 69365839,
       69365983, 69366126, 69366269, 69366412, 69366555, 69366698, 69366841,
       69366984, 69367127, 69367269, 69367411, 69367553, 69367695, 69367837,
       69367979, 69368121, 69368263, 69368405, 69368547, 69368688, 69368829,
       69368970, 69369111, 69369252, 69369393, 69369534, 69369675, 69369816,
       69369957, 69370098, 69370112, 69370126, 69370140, 69370154, 69370168,
       69370182, 69370196, 69370335, 69370474, 69370613, 69370752, 69370891,
       69371030, 69371169, 69371308, 69371447, 69371585, 69371723, 69371861,
       69371999, 69372137, 69372275, 69372412, 69372549, 69372686, 69372823,
       69372960, 69373097, 69373234, 69373371, 69373508, 69373645, 69373782,
       69373919, 69374056, 69374193, 69374330, 69374467, 69374604, 69374741,
       69374878, 69375015, 69375151, 69375287, 69375423, 69375559, 69375695,
       69375831, 69375967, 69376103, 69376239, 69376375, 69376511, 69376646,
       69376781, 69376916, 69377051, 69377186, 69377321, 69377456, 69377591,
       69377726, 69377861, 69377996, 69378131, 69378266, 69378400, 69378534,
       69378668, 69378802, 69378936, 69379070, 69379204, 69379338, 69379472,
       69379605, 69379738, 69379871, 69380004, 69380137, 69380270, 69380403,
       69380536, 69380669, 69380802, 69380935, 69381067, 69381199, 69381331,
       69381463, 69381595, 69381727, 69381859, 69381990, 69382121, 69382252,
       69382383, 69382514, 69382645, 69382776, 69382907, 69383038, 69383051,
       69383064, 69383077, 69383090, 69383103, 69383116, 69383129, 69383142,
       69383155, 69383168, 69383181, 69383194, 69383207, 69383336, 69383465,
       69383594, 69383723, 69383852, 69383981, 69384110, 69384239, 69384368,
       69384497, 69384625, 69384753, 69384881, 69385009, 69385137, 69385265,
       69385392, 69385519, 69385646, 69385773, 69385900, 69386027, 69386154,
       69386281, 69386408, 69386535, 69386662, 69386789, 69386915, 69387041,
       69387167, 69387293, 69387419, 69387545, 69387671, 69387797, 69387923,
       69388049, 69388175, 69388301, 69388427, 69388553, 69388678, 69388803,
       69388928, 69389053, 69389178, 69389303, 69389428, 69389553, 69389678,
       69389803, 69389928, 69390053, 69390178, 69390303, 69390428, 69390553,
       69390678, 69390803, 69390927, 69391051, 69391175, 69391299, 69391423,
       69391547, 69391671, 69391795, 69391919, 69392042, 69392165, 69392288,
       69392411, 69392534, 69392657, 69392780, 69392903, 69393026, 69393149,
       69393272, 69393395, 69393518, 69393640, 69393762, 69393884, 69394006,
       69394128, 69394250, 69394372, 69394494, 69394616, 69394738, 69394860,
       69394982, 69395104, 69395225, 69395346, 69395467, 69395588, 69395709,
       69395830, 69395951, 69396072, 69396193, 69396314, 69396435, 69396556,
       69396677, 69396798, 69396810, 69396822, 69396834, 69396846, 69396858,
       69396870, 69396989, 69397108, 69397227, 69397346, 69397465, 69397584,
       69397703, 69397822, 69397941, 69398060, 69398179, 69398297, 69398415,
       69398533, 69398651, 69398769, 69398887, 69399005, 69399123, 69399241,
       69399359, 69399477, 69399595, 69399712, 69399829, 69399946, 69400063,
       69400180, 69400297, 69400414, 69400531, 69400648, 69400765, 69400882,
       69400998, 69401114, 69401230, 69401346, 69401462, 69401578, 69401694,
       69401810, 69401926, 69402042, 69402158, 69402273, 69402388, 69402503,
       69402618, 69402733, 69402848, 69402963, 69403078, 69403193, 69403308,
       69403422, 69403536, 69403650, 69403764, 69403878, 69403992, 69404106,
       69404220, 69404334, 69404447, 69404560, 69404673, 69404786, 69404899,
       69405012, 69405125, 69405238, 69405351, 69405464, 69405577, 69405690,
       69405803, 69405915, 69406027, 69406139, 69406251, 69406363, 69406475,
       69406587, 69406699, 69406811, 69406923, 69407035, 69407147, 69407259,
       69407371, 69407483, 69407595, 69407707, 69407818, 69407929, 69408040,
       69408151, 69408262, 69408373, 69408484, 69408595, 69408706, 69408817,
       69408928, 69409039, 69409150, 69409161, 69409172, 69409183, 69409194,
       69409205, 69409216, 69409227, 69409238, 69409347, 69409456, 69409565,
       69409674, 69409783, 69409892, 69410001, 69410110, 69410219, 69410328,
       69410437, 69410546, 69410655, 69410764, 69410873, 69410982, 69411091,
       69411200, 69411309, 69411418, 69411526, 69411634, 69411742, 69411850,
       69411958, 69412066, 69412174, 69412282, 69412390, 69412498, 69412606,
       69412714, 69412822, 69412930, 69413037, 69413144, 69413251, 69413358,
       69413465, 69413572, 69413679, 69413786, 69413893, 69414000, 69414106,
       69414212, 69414318, 69414424, 69414530, 69414636, 69414742, 69414848,
       69414954, 69415060, 69415166, 69415272, 69415378, 69415483, 69415588,
       69415693, 69415798, 69415903, 69416008, 69416113, 69416218, 69416323,
       69416428, 69416533, 69416638, 69416743, 69416847, 69416951, 69417055,
       69417159, 69417263, 69417367, 69417471, 69417575, 69417679, 69417783,
       69417887, 69417991, 69418095, 69418198, 69418301, 69418404, 69418507,
       69418610, 69418713, 69418816, 69418919, 69419022, 69419125, 69419228,
       69419331, 69419433, 69419535, 69419637, 69419739, 69419841, 69419943,
       69420045, 69420147, 69420249, 69420351, 69420453, 69420555, 69420657,
       69420759, 69420860, 69420961, 69421062, 69421163, 69421264, 69421365,
       69421466, 69421567, 69421668, 69421769, 69421870, 69421971, 69422072,
       69422173, 69422274, 69422375, 69422376, 69422377, 69422378, 69422379,
       69422380, 69422381, 69422382, 69422383, 69422384, 69422385, 69422386,
       69422387, 69422388, 69422389, 69422390, 69422391, 69422490, 69422589,
       69422688, 69422787, 69422886, 69422985, 69423084, 69423183, 69423282,
       69423381, 69423480, 69423579, 69423678, 69423777, 69423876, 69423975,
       69424073, 69424171, 69424269, 69424367, 69424465, 69424563, 69424661,
       69424759, 69424857, 69424954, 69425051, 69425148, 69425245, 69425342,
       69425439, 69425536, 69425633, 69425730, 69425827, 69425924, 69426021,
       69426118, 69426214, 69426310, 69426406, 69426502, 69426598, 69426694,
       69426790, 69426886, 69426982, 69427078, 69427174, 69427270, 69427366,
       69427462, 69427558, 69427653, 69427748, 69427843, 69427938, 69428033,
       69428128, 69428223, 69428318, 69428413, 69428508, 69428603, 69428698,
       69428793, 69428888, 69428982, 69429076, 69429170, 69429264, 69429358,
       69429452, 69429546, 69429640, 69429734, 69429828, 69429922, 69430016,
       69430110, 69430204, 69430298, 69430392, 69430486, 69430580, 69430673,
       69430766, 69430859, 69430952, 69431045, 69431138, 69431231, 69431324,
       69431417, 69431510, 69431603, 69431696, 69431789, 69431882, 69431975,
       69432068, 69432161, 69432254, 69432347, 69432439, 69432531, 69432623,
       69432715, 69432807, 69432899, 69432991, 69433083, 69433175, 69433267,
       69433359, 69433450, 69433541, 69433632, 69433723, 69433814, 69433905,
       69433996, 69434087, 69434178, 69434269, 69434360, 69434451, 69434542,
       69434633, 69434724, 69434733, 69434742, 69434751, 69434760, 69434769,
       69434778, 69434787, 69434796, 69434805, 69434814, 69434823, 69434912,
       69435001, 69435090, 69435179, 69435268, 69435357, 69435446, 69435535,
       69435624, 69435713, 69435801, 69435889, 69435977, 69436065, 69436153,
       69436241, 69436329, 69436417, 69436505, 69436593, 69436681, 69436769,
       69436857, 69436944, 69437031, 69437118, 69437205, 69437292, 69437379,
       69437466, 69437553, 69437640, 69437727, 69437814, 69437901, 69437988,
       69438075, 69438161, 69438247, 69438333, 69438419, 69438505, 69438591,
       69438677, 69438763, 69438849, 69438935, 69439021, 69439107, 69439193,
       69439278, 69439363, 69439448, 69439533, 69439618, 69439703, 69439788,
       69439873, 69439958, 69440043, 69440128, 69440213, 69440298, 69440382,
       69440466, 69440550, 69440634, 69440718, 69440802, 69440886, 69440970,
       69441054, 69441138, 69441222, 69441306, 69441390, 69441474, 69441557,
       69441640, 69441723, 69441806, 69441889, 69441972, 69442055, 69442138,
       69442221, 69442304, 69442387, 69442470, 69442553, 69442636, 69442719,
       69442802, 69442885, 69442967, 69443049, 69443131, 69443213, 69443295,
       69443377, 69443459, 69443541, 69443623, 69443705, 69443787, 69443869,
       69443951, 69444033, 69444115, 69444197, 69444279, 69444361, 69444443,
       69444524, 69444605, 69444686, 69444767, 69444848, 69444929, 69445010,
       69445091, 69445172, 69445253, 69445334, 69445415, 69445496, 69445577,
       69445585, 69445593, 69445601, 69445609, 69445617, 69445625, 69445633,
       69445641, 69445649, 69445657, 69445665, 69445673, 69445681, 69445689,
       69445697, 69445705, 69445713, 69445721, 69445729, 69445737, 69445816,
       69445895, 69445974, 69446053, 69446132, 69446211, 69446290, 69446369,
       69446448, 69446527, 69446606, 69446685, 69446764, 69446843, 69446922,
       69447001, 69447080, 69447159, 69447238, 69447317, 69447396, 69447475,
       69447553, 69447631, 69447709, 69447787, 69447865, 69447943, 69448021,
       69448099, 69448177, 69448255, 69448333, 69448411, 69448489, 69448567,
       69448645, 69448722, 69448799, 69448876, 69448953, 69449030, 69449107,
       69449184, 69449261, 69449338, 69449415, 69449492, 69449569, 69449646,
       69449723, 69449800, 69449876, 69449952, 69450028, 69450104, 69450180,
       69450256, 69450332, 69450408, 69450484, 69450560, 69450636, 69450712,
       69450788, 69450864, 69450940, 69451016, 69451092, 69451168, 69451244,
       69451320, 69451395, 69451470, 69451545, 69451620, 69451695, 69451770,
       69451845, 69451920, 69451995, 69452070, 69452145, 69452220, 69452295,
       69452370, 69452445, 69452520, 69452595, 69452670, 69452745, 69452820,
       69452895, 69452970, 69453044, 69453118, 69453192, 69453266, 69453340,
       69453414, 69453488, 69453562, 69453636, 69453710, 69453784, 69453858,
       69453932, 69454006, 69454080, 69454154, 69454228, 69454302, 69454376,
       69454450, 69454524, 69454598, 69454671, 69454744, 69454817, 69454890,
       69454963, 69455036, 69455109, 69455182, 69455255, 69455328, 69455401,
       69455474, 69455547, 69455620, 69455693, 69455766, 69455839, 69455912,
       69455985, 69456058, 69456130, 69456202, 69456274, 69456346, 69456418,
       69456490, 69456562, 69456634, 69456706, 69456778, 69456850, 69456922,
       69456994, 69457066, 69457138, 69457210, 69457281, 69457352, 69457423,
       69457494, 69457565, 69457636, 69457707, 69457778, 69457849, 69457920,
       69457991, 69458062, 69458133, 69458204, 69458275, 69458346, 69458417,
       69458488, 69458559, 69458630, 69458701, 69458772, 69458843, 69458850,
       69458857, 69458864, 69458871, 69458878, 69458885, 69458892, 69458899,
       69458906, 69458913, 69458920, 69458927, 69458934, 69458941, 69459010,
       69459079, 69459148, 69459217, 69459286, 69459355, 69459424, 69459493,
       69459562, 69459631, 69459700, 69459769, 69459838, 69459907, 69459976,
       69460045, 69460114, 69460183, 69460252, 69460321, 69460390, 69460459,
       69460528, 69460596, 69460664, 69460732, 69460800, 69460868, 69460936};
     System.arraycopy(temp, 0, prob, 0, temp.length);
   }

   private static void populateProb2() {
     int[] temp = new int[] {
       69461004, 69461072, 69461140, 69461208, 69461276, 69461344, 69461412,
       69461480, 69461548, 69461616, 69461684, 69461751, 69461818, 69461885,
       69461952, 69462019, 69462086, 69462153, 69462220, 69462287, 69462354,
       69462421, 69462488, 69462555, 69462622, 69462689, 69462756, 69462823,
       69462889, 69462955, 69463021, 69463087, 69463153, 69463219, 69463285,
       69463351, 69463417, 69463483, 69463549, 69463615, 69463681, 69463747,
       69463813, 69463879, 69463945, 69464011, 69464077, 69464143, 69464209,
       69464275, 69464341, 69464407, 69464473, 69464539, 69464605, 69464670,
       69464735, 69464800, 69464865, 69464930, 69464995, 69465060, 69465125,
       69465190, 69465255, 69465320, 69465385, 69465450, 69465515, 69465580,
       69465645, 69465710, 69465775, 69465840, 69465905, 69465969, 69466033,
       69466097, 69466161, 69466225, 69466289, 69466353, 69466417, 69466481,
       69466545, 69466609, 69466673, 69466737, 69466801, 69466864, 69466927,
       69466990, 69467053, 69467116, 69467179, 69467242, 69467305, 69467368,
       69467431, 69467494, 69467557, 69467620, 69467683, 69467746, 69467809,
       69467872, 69467935, 69467998, 69468061, 69468124, 69468187, 69468250,
       69468313, 69468375, 69468437, 69468499, 69468561, 69468623, 69468685,
       69468747, 69468809, 69468871, 69468933, 69468995, 69469057, 69469119,
       69469181, 69469243, 69469305, 69469366, 69469427, 69469488, 69469549,
       69469610, 69469671, 69469732, 69469793, 69469854, 69469915, 69469976,
       69470037, 69470098, 69470159, 69470220, 69470281, 69470342, 69470403,
       69470464, 69470525, 69470586, 69470647, 69470708, 69470714, 69470720,
       69470726, 69470732, 69470738, 69470744, 69470750, 69470756, 69470762,
       69470768, 69470774, 69470780, 69470786, 69470792, 69470798, 69470804,
       69470810, 69470816, 69470822, 69470828, 69470834, 69470840, 69470846,
       69470852, 69470858, 69470864, 69470870, 69470876, 69470882, 69470888,
       69470894, 69470900, 69470959, 69471018, 69471077, 69471136, 69471195,
       69471254, 69471313, 69471372, 69471431, 69471490, 69471549, 69471608,
       69471667, 69471726, 69471785, 69471844, 69471903, 69471962, 69472021,
       69472080, 69472139, 69472197, 69472255, 69472313, 69472371, 69472429,
       69472487, 69472545, 69472603, 69472661, 69472719, 69472777, 69472835,
       69472893, 69472951, 69473009, 69473067, 69473125, 69473183, 69473241,
       69473299, 69473357, 69473415, 69473473, 69473531, 69473589, 69473647,
       69473705, 69473762, 69473819, 69473876, 69473933, 69473990, 69474047,
       69474104, 69474161, 69474218, 69474275, 69474332, 69474389, 69474446,
       69474503, 69474560, 69474617, 69474674, 69474731, 69474788, 69474845,
       69474902, 69474959, 69475016, 69475072, 69475128, 69475184, 69475240,
       69475296, 69475352, 69475408, 69475464, 69475520, 69475576, 69475632,
       69475688, 69475744, 69475800, 69475856, 69475912, 69475968, 69476024,
       69476080, 69476136, 69476192, 69476248, 69476304, 69476360, 69476416,
       69476471, 69476526, 69476581, 69476636, 69476691, 69476746, 69476801,
       69476856, 69476911, 69476966, 69477021, 69477076, 69477131, 69477186,
       69477241, 69477296, 69477351, 69477406, 69477461, 69477516, 69477571,
       69477626, 69477681, 69477736, 69477791, 69477846, 69477901, 69477956,
       69478010, 69478064, 69478118, 69478172, 69478226, 69478280, 69478334,
       69478388, 69478442, 69478496, 69478550, 69478604, 69478658, 69478712,
       69478766, 69478820, 69478874, 69478928, 69478982, 69479036, 69479090,
       69479144, 69479197, 69479250, 69479303, 69479356, 69479409, 69479462,
       69479515, 69479568, 69479621, 69479674, 69479727, 69479780, 69479833,
       69479886, 69479939, 69479992, 69480045, 69480098, 69480151, 69480204,
       69480257, 69480310, 69480363, 69480416, 69480468, 69480520, 69480572,
       69480624, 69480676, 69480728, 69480780, 69480832, 69480884, 69480936,
       69480988, 69481040, 69481092, 69481144, 69481196, 69481248, 69481300,
       69481352, 69481404, 69481456, 69481508, 69481560, 69481612, 69481664,
       69481716, 69481768, 69481820, 69481872, 69481924, 69481976, 69482028,
       69482080, 69482132, 69482184, 69482236, 69482288, 69482339, 69482390,
       69482441, 69482492, 69482543, 69482594, 69482645, 69482696, 69482747,
       69482798, 69482849, 69482900, 69482951, 69483002, 69483053, 69483104,
       69483155, 69483206, 69483257, 69483308, 69483359, 69483410, 69483461,
       69483512, 69483563, 69483614, 69483665, 69483716, 69483767, 69483772,
       69483777, 69483782, 69483787, 69483792, 69483797, 69483802, 69483807,
       69483812, 69483817, 69483822, 69483827, 69483832, 69483837, 69483842,
       69483847, 69483852, 69483857, 69483862, 69483867, 69483872, 69483877,
       69483926, 69483975, 69484024, 69484073, 69484122, 69484171, 69484220,
       69484269, 69484318, 69484367, 69484416, 69484465, 69484514, 69484563,
       69484612, 69484661, 69484710, 69484759, 69484808, 69484857, 69484906,
       69484955, 69485004, 69485053, 69485102, 69485151, 69485200, 69485249,
       69485298, 69485347, 69485396, 69485445, 69485494, 69485543, 69485592,
       69485641, 69485690, 69485739, 69485788, 69485837, 69485886, 69485935,
       69485984, 69486033, 69486082, 69486131, 69486180, 69486229, 69486278,
       69486326, 69486374, 69486422, 69486470, 69486518, 69486566, 69486614,
       69486662, 69486710, 69486758, 69486806, 69486854, 69486902, 69486950,
       69486998, 69487046, 69487094, 69487142, 69487190, 69487238, 69487286,
       69487333, 69487380, 69487427, 69487474, 69487521, 69487568, 69487615,
       69487662, 69487709, 69487756, 69487803, 69487850, 69487897, 69487944,
       69487991, 69488038, 69488085, 69488132, 69488179, 69488226, 69488273,
       69488320, 69488366, 69488412, 69488458, 69488504, 69488550, 69488596,
       69488642, 69488688, 69488734, 69488780, 69488826, 69488872, 69488918,
       69488964, 69489010, 69489056, 69489102, 69489148, 69489194, 69489240,
       69489286, 69489332, 69489378, 69489424, 69489470, 69489516, 69489562,
       69489608, 69489654, 69489700, 69489746, 69489792, 69489837, 69489882,
       69489927, 69489972, 69490017, 69490062, 69490107, 69490152, 69490197,
       69490242, 69490287, 69490332, 69490377, 69490422, 69490467, 69490512,
       69490557, 69490602, 69490647, 69490692, 69490737, 69490782, 69490827,
       69490872, 69490917, 69490962, 69491007, 69491052, 69491097, 69491142,
       69491187, 69491232, 69491277, 69491322, 69491367, 69491411, 69491455,
       69491499, 69491543, 69491587, 69491631, 69491675, 69491719, 69491763,
       69491807, 69491851, 69491895, 69491939, 69491983, 69492027, 69492071,
       69492115, 69492159, 69492203, 69492247, 69492291, 69492335, 69492379,
       69492423, 69492467, 69492511, 69492555, 69492599, 69492643, 69492686,
       69492729, 69492772, 69492815, 69492858, 69492901, 69492944, 69492987,
       69493030, 69493073, 69493116, 69493159, 69493202, 69493245, 69493288,
       69493331, 69493374, 69493417, 69493460, 69493503, 69493546, 69493589,
       69493632, 69493675, 69493718, 69493761, 69493804, 69493847, 69493890,
       69493933, 69493976, 69494019, 69494062, 69494105, 69494148, 69494191,
       69494234, 69494277, 69494320, 69494363, 69494406, 69494449, 69494492,
       69494535, 69494577, 69494619, 69494661, 69494703, 69494745, 69494787,
       69494829, 69494871, 69494913, 69494955, 69494997, 69495039, 69495081,
       69495123, 69495165, 69495207, 69495249, 69495291, 69495333, 69495375,
       69495417, 69495459, 69495501, 69495543, 69495585, 69495627, 69495669,
       69495711, 69495753, 69495795, 69495837, 69495879, 69495921, 69495963,
       69496005, 69496047, 69496089, 69496131, 69496172, 69496213, 69496254,
       69496295, 69496336, 69496377, 69496418, 69496459, 69496500, 69496541,
       69496582, 69496623, 69496664, 69496705, 69496746, 69496787, 69496828,
       69496869, 69496910, 69496951, 69496992, 69497033, 69497074, 69497115,
       69497156, 69497197, 69497238, 69497279, 69497320, 69497361, 69497402,
       69497443, 69497484, 69497525, 69497566, 69497607, 69497648, 69497689,
       69497693, 69497697, 69497701, 69497705, 69497709, 69497713, 69497717,
       69497721, 69497725, 69497729, 69497733, 69497737, 69497741, 69497745,
       69497749, 69497753, 69497757, 69497761, 69497765, 69497769, 69497773,
       69497777, 69497781, 69497785, 69497789, 69497793, 69497797, 69497801,
       69497805, 69497809, 69497813, 69497817, 69497821, 69497825, 69497829,
       69497868, 69497907, 69497946, 69497985, 69498024, 69498063, 69498102,
       69498141, 69498180, 69498219, 69498258, 69498297, 69498336, 69498375,
       69498414, 69498453, 69498492, 69498531, 69498570, 69498609, 69498648,
       69498687, 69498726, 69498765, 69498804, 69498843, 69498882, 69498921,
       69498960, 69498999, 69499038, 69499077, 69499116, 69499155, 69499193,
       69499231, 69499269, 69499307, 69499345, 69499383, 69499421, 69499459,
       69499497, 69499535, 69499573, 69499611, 69499649, 69499687, 69499725,
       69499763, 69499801, 69499839, 69499877, 69499915, 69499953, 69499991,
       69500029, 69500067, 69500105, 69500143, 69500181, 69500219, 69500257,
       69500295, 69500333, 69500371, 69500409, 69500447, 69500484, 69500521,
       69500558, 69500595, 69500632, 69500669, 69500706, 69500743, 69500780,
       69500817, 69500854, 69500891, 69500928, 69500965, 69501002, 69501039,
       69501076, 69501113, 69501150, 69501187, 69501224, 69501261, 69501298,
       69501335, 69501372, 69501409, 69501446, 69501483, 69501520, 69501557,
       69501594, 69501631, 69501667, 69501703, 69501739, 69501775, 69501811,
       69501847, 69501883, 69501919, 69501955, 69501991, 69502027, 69502063,
       69502099, 69502135, 69502171, 69502207, 69502243, 69502279, 69502315,
       69502351, 69502387, 69502423, 69502459, 69502495, 69502531, 69502567,
       69502603, 69502639, 69502675, 69502711, 69502747, 69502783, 69502819,
       69502855, 69502891, 69502927, 69502963, 69502999, 69503035, 69503071,
       69503107, 69503143, 69503179, 69503214, 69503249, 69503284, 69503319,
       69503354, 69503389, 69503424, 69503459, 69503494, 69503529, 69503564,
       69503599, 69503634, 69503669, 69503704, 69503739, 69503774, 69503809,
       69503844, 69503879, 69503914, 69503949, 69503984, 69504019, 69504054,
       69504089, 69504124, 69504159, 69504194, 69504229, 69504264, 69504299,
       69504334, 69504369, 69504404, 69504439, 69504474, 69504509, 69504544,
       69504579, 69504614, 69504649, 69504684, 69504719, 69504754, 69504789,
       69504824, 69504859, 69504894, 69504929, 69504964, 69504999, 69505034,
       69505068, 69505102, 69505136, 69505170, 69505204, 69505238, 69505272,
       69505306, 69505340, 69505374, 69505408, 69505442, 69505476, 69505510,
       69505544, 69505578, 69505612, 69505646, 69505680, 69505714, 69505748,
       69505782, 69505816, 69505850, 69505884, 69505918, 69505952, 69505986,
       69506020, 69506054, 69506088, 69506122, 69506156, 69506190, 69506224,
       69506258, 69506292, 69506326, 69506360, 69506394, 69506427, 69506460,
       69506493, 69506526, 69506559, 69506592, 69506625, 69506658, 69506691,
       69506724, 69506757, 69506790, 69506823, 69506856, 69506889, 69506922,
       69506955, 69506988, 69507021, 69507054, 69507087, 69507120, 69507153,
       69507186, 69507219, 69507252, 69507285, 69507318, 69507351, 69507384,
       69507417, 69507450, 69507483, 69507516, 69507549, 69507582, 69507615,
       69507648, 69507681, 69507714, 69507747, 69507780, 69507813, 69507846,
       69507879, 69507912, 69507945, 69507978, 69508011, 69508044, 69508077,
       69508110, 69508143, 69508176, 69508209, 69508242, 69508275, 69508308,
       69508341, 69508373, 69508405, 69508437, 69508469, 69508501, 69508533,
       69508565, 69508597, 69508629, 69508661, 69508693, 69508725, 69508757,
       69508789, 69508821, 69508853, 69508885, 69508917, 69508949, 69508981,
       69509013, 69509045, 69509077, 69509109, 69509141, 69509173, 69509205,
       69509237, 69509269, 69509301, 69509333, 69509365, 69509397, 69509429,
       69509461, 69509493, 69509525, 69509557, 69509589, 69509621, 69509653,
       69509685, 69509717, 69509748, 69509779, 69509810, 69509841, 69509872,
       69509903, 69509934, 69509965, 69509996, 69510027, 69510058, 69510089,
       69510120, 69510151, 69510182, 69510213, 69510244, 69510275, 69510306,
       69510337, 69510368, 69510399, 69510430, 69510461, 69510492, 69510523,
       69510554, 69510585, 69510616, 69510647, 69510678, 69510709, 69510740,
       69510771, 69510802, 69510833, 69510864, 69510895, 69510926, 69510957,
       69510988, 69511019, 69511050, 69511053, 69511056, 69511059, 69511062,
       69511065, 69511068, 69511071, 69511074, 69511077, 69511080, 69511083,
       69511086, 69511089, 69511092, 69511095, 69511098, 69511101, 69511104,
       69511107, 69511110, 69511113, 69511116, 69511119, 69511122, 69511125,
       69511128, 69511131, 69511134, 69511137, 69511140, 69511143, 69511146,
       69511149, 69511152, 69511155, 69511158, 69511161, 69511164, 69511167,
       69511170, 69511173, 69511176, 69511179, 69511182, 69511185, 69511188,
       69511191, 69511194, 69511197, 69511200, 69511203, 69511206, 69511209,
       69511212, 69511241, 69511270, 69511299, 69511328, 69511357, 69511386,
       69511415, 69511444, 69511473, 69511502, 69511531, 69511560, 69511589,
       69511618, 69511647, 69511676, 69511705, 69511734, 69511763, 69511792,
       69511821, 69511850, 69511879, 69511908, 69511937, 69511966, 69511995,
       69512024, 69512053, 69512082, 69512111, 69512140, 69512169, 69512198,
       69512227, 69512256, 69512285, 69512314, 69512343, 69512372, 69512401,
       69512430, 69512459, 69512488, 69512517, 69512545, 69512573, 69512601,
       69512629, 69512657, 69512685, 69512713, 69512741, 69512769, 69512797,
       69512825, 69512853, 69512881, 69512909, 69512937, 69512965, 69512993,
       69513021, 69513049, 69513077, 69513105, 69513133, 69513161, 69513189,
       69513217, 69513245, 69513273, 69513301, 69513329, 69513357, 69513385,
       69513413, 69513441, 69513469, 69513497, 69513525, 69513553, 69513581,
       69513609, 69513637, 69513665, 69513693, 69513721, 69513749, 69513777,
       69513805, 69513833, 69513861, 69513889, 69513916, 69513943, 69513970,
       69513997, 69514024, 69514051, 69514078, 69514105, 69514132, 69514159,
       69514186, 69514213, 69514240, 69514267, 69514294, 69514321, 69514348,
       69514375, 69514402, 69514429, 69514456, 69514483, 69514510, 69514537,
       69514564, 69514591, 69514618, 69514645, 69514672, 69514699, 69514726,
       69514753, 69514780, 69514807, 69514834, 69514861, 69514888, 69514915,
       69514942, 69514969, 69514996, 69515023, 69515050, 69515077, 69515104,
       69515131, 69515158, 69515185, 69515212, 69515239, 69515266, 69515293,
       69515320, 69515347, 69515374, 69515401, 69515428, 69515455, 69515482,
       69515509, 69515536, 69515563, 69515590, 69515617, 69515644, 69515670,
       69515696, 69515722, 69515748, 69515774, 69515800, 69515826, 69515852,
       69515878, 69515904, 69515930, 69515956, 69515982, 69516008, 69516034,
       69516060, 69516086, 69516112, 69516138, 69516164, 69516190, 69516216,
       69516242, 69516268, 69516294, 69516320, 69516346, 69516372, 69516398,
       69516424, 69516450, 69516476, 69516502, 69516528, 69516554, 69516580,
       69516606, 69516632, 69516658, 69516684, 69516710, 69516736, 69516762,
       69516788, 69516814, 69516840, 69516866, 69516892, 69516918, 69516944,
       69516970, 69516996, 69517022, 69517048, 69517074, 69517100, 69517126,
       69517152, 69517178, 69517204, 69517230, 69517256, 69517282, 69517308,
       69517334, 69517359, 69517384, 69517409, 69517434, 69517459, 69517484,
       69517509, 69517534, 69517559, 69517584, 69517609, 69517634, 69517659,
       69517684, 69517709, 69517734, 69517759, 69517784, 69517809, 69517834,
       69517859, 69517884, 69517909, 69517934, 69517959, 69517984, 69518009,
       69518034, 69518059, 69518084, 69518109, 69518134, 69518159, 69518184,
       69518209, 69518234, 69518259, 69518284, 69518309, 69518334, 69518359,
       69518384, 69518409, 69518434, 69518459, 69518484, 69518509, 69518534,
       69518559, 69518584, 69518609, 69518634, 69518659, 69518684, 69518709,
       69518734, 69518759, 69518784, 69518809, 69518834, 69518859, 69518884,
       69518909, 69518934, 69518958, 69518982, 69519006, 69519030, 69519054,
       69519078, 69519102, 69519126, 69519150, 69519174, 69519198, 69519222,
       69519246, 69519270, 69519294, 69519318, 69519342, 69519366, 69519390,
       69519414, 69519438, 69519462, 69519486, 69519510, 69519534, 69519558,
       69519582, 69519606, 69519630, 69519654, 69519678, 69519702, 69519726,
       69519750, 69519774, 69519798, 69519822, 69519846, 69519870, 69519894,
       69519918, 69519942, 69519966, 69519990, 69520014, 69520038, 69520062,
       69520086, 69520110, 69520134, 69520158, 69520182, 69520206, 69520230,
       69520254, 69520278, 69520302, 69520326, 69520350, 69520374, 69520398,
       69520422, 69520446, 69520470, 69520494, 69520518, 69520542, 69520566,
       69520590, 69520614, 69520638, 69520662, 69520686, 69520710, 69520734,
       69520758, 69520781, 69520804, 69520827, 69520850, 69520873, 69520896,
       69520919, 69520942, 69520965, 69520988, 69521011, 69521034, 69521057,
       69521080, 69521103, 69521126, 69521149, 69521172, 69521195, 69521218,
       69521241, 69521264, 69521287, 69521310, 69521333, 69521356, 69521379,
       69521402, 69521425, 69521448, 69521471, 69521494, 69521517, 69521540,
       69521563, 69521586, 69521609, 69521632, 69521655, 69521678, 69521701,
       69521724, 69521747, 69521770, 69521793, 69521816, 69521839, 69521862,
       69521885, 69521908, 69521931, 69521954, 69521977, 69522000, 69522023,
       69522046, 69522069, 69522092, 69522115, 69522138, 69522160, 69522182,
       69522204, 69522226, 69522248, 69522270, 69522292, 69522314, 69522336,
       69522358, 69522380, 69522402, 69522424, 69522446, 69522468, 69522490,
       69522512, 69522534, 69522556, 69522578, 69522600, 69522622, 69522644,
       69522666, 69522688, 69522710, 69522732, 69522754, 69522776, 69522798,
       69522820, 69522842, 69522864, 69522886, 69522908, 69522930, 69522952,
       69522974, 69522996, 69523018, 69523040, 69523062, 69523084, 69523106,
       69523128, 69523150, 69523172, 69523194, 69523216, 69523238, 69523260,
       69523282, 69523304, 69523326, 69523348, 69523370, 69523392, 69523414,
       69523436, 69523458, 69523480, 69523502, 69523524, 69523546, 69523568,
       69523590, 69523612, 69523634, 69523656, 69523678, 69523700, 69523722,
       69523744, 69523765, 69523786, 69523807, 69523828, 69523849, 69523870,
       69523891, 69523912, 69523933, 69523954, 69523975, 69523996, 69524017,
       69524038, 69524059, 69524080, 69524101, 69524122, 69524143, 69524164,
       69524185, 69524206, 69524227, 69524248, 69524269, 69524290, 69524311,
       69524332, 69524353, 69524374, 69524395, 69524416, 69524437, 69524458,
       69524479, 69524500, 69524521, 69524542, 69524563, 69524584, 69524605,
       69524626, 69524647, 69524668, 69524689, 69524710, 69524731, 69524752,
       69524773, 69524794, 69524815, 69524836, 69524857, 69524878, 69524899,
       69524920, 69524941, 69524962, 69524983, 69525004, 69525025, 69525046,
       69525067, 69525088, 69525109, 69525130, 69525151, 69525172, 69525193,
       69525214, 69525235, 69525256, 69525277, 69525298, 69525319, 69525340,
       69525361, 69525382, 69525403, 69525424, 69525445, 69525466, 69525487,
       69525508, 69525529, 69525550, 69525571, 69525592, 69525594, 69525596,
       69525598, 69525600, 69525602, 69525604, 69525606, 69525608, 69525610,
       69525612, 69525614, 69525616, 69525618, 69525620, 69525622, 69525624,
       69525626, 69525628, 69525630, 69525632, 69525634, 69525636, 69525638,
       69525640, 69525642, 69525644, 69525646, 69525648, 69525650, 69525652,
       69525654, 69525656, 69525658, 69525660, 69525662, 69525664, 69525666,
       69525668, 69525670, 69525672, 69525674, 69525676, 69525678, 69525680,
       69525682, 69525684, 69525686, 69525688, 69525690, 69525692, 69525694,
       69525696, 69525698, 69525700, 69525702, 69525704, 69525706, 69525708,
       69525710, 69525712, 69525714, 69525716, 69525718, 69525720, 69525722,
       69525724, 69525726, 69525728, 69525730, 69525732, 69525734, 69525736,
       69525738, 69525740, 69525742, 69525744, 69525746, 69525748, 69525750,
       69525752, 69525754, 69525756, 69525758, 69525760, 69525762, 69525764,
       69525766, 69525768, 69525770, 69525772, 69525774, 69525776, 69525778,
       69525780, 69525782, 69525784, 69525786, 69525788, 69525790, 69525792,
       69525794, 69525796, 69525815, 69525834, 69525853, 69525872, 69525891,
       69525910, 69525929, 69525948, 69525967, 69525986, 69526005, 69526024,
       69526043, 69526062, 69526081, 69526100, 69526119, 69526138, 69526157,
       69526176, 69526195, 69526214, 69526233, 69526252, 69526271, 69526290,
       69526309, 69526328, 69526347, 69526366, 69526385, 69526404, 69526423,
       69526442, 69526461, 69526480, 69526499, 69526518, 69526537, 69526556,
       69526575, 69526594, 69526613, 69526632, 69526651, 69526670, 69526689,
       69526708, 69526727, 69526746, 69526765, 69526784, 69526803, 69526822,
       69526841, 69526860, 69526879, 69526898, 69526917, 69526936, 69526955,
       69526974, 69526993, 69527012, 69527031, 69527050, 69527069, 69527088,
       69527107, 69527126, 69527145, 69527164, 69527183, 69527202, 69527221,
       69527240, 69527259, 69527278, 69527297, 69527316, 69527335, 69527354,
       69527373, 69527392, 69527411, 69527429, 69527447, 69527465, 69527483,
       69527501, 69527519, 69527537, 69527555, 69527573, 69527591, 69527609,
       69527627, 69527645, 69527663, 69527681, 69527699, 69527717, 69527735,
       69527753, 69527771, 69527789, 69527807, 69527825, 69527843, 69527861,
       69527879, 69527897, 69527915, 69527933, 69527951, 69527969, 69527987,
       69528005, 69528023, 69528041, 69528059, 69528077, 69528095, 69528113,
       69528131, 69528149, 69528167, 69528185, 69528203, 69528221, 69528239,
       69528257, 69528275, 69528293, 69528311, 69528329, 69528347, 69528365,
       69528383, 69528401, 69528419, 69528437, 69528455, 69528473, 69528491,
       69528509, 69528527, 69528545, 69528563, 69528581, 69528599, 69528617,
       69528635, 69528653, 69528671, 69528689, 69528707, 69528725, 69528743,
       69528761, 69528779, 69528797, 69528814, 69528831, 69528848, 69528865,
       69528882, 69528899, 69528916, 69528933, 69528950, 69528967, 69528984,
       69529001, 69529018, 69529035, 69529052, 69529069, 69529086, 69529103,
       69529120, 69529137, 69529154, 69529171, 69529188, 69529205, 69529222,
       69529239, 69529256, 69529273, 69529290, 69529307, 69529324, 69529341,
       69529358, 69529375, 69529392, 69529409, 69529426, 69529443, 69529460,
       69529477, 69529494, 69529511, 69529528, 69529545, 69529562, 69529579,
       69529596, 69529613, 69529630, 69529647, 69529664, 69529681, 69529698,
       69529715, 69529732, 69529749, 69529766, 69529783, 69529800, 69529817,
       69529834, 69529851, 69529868, 69529885, 69529902, 69529919, 69529936,
       69529953, 69529970, 69529987, 69530004, 69530021, 69530038, 69530055,
       69530072, 69530089, 69530106, 69530123, 69530140, 69530157, 69530174,
       69530191, 69530208, 69530225, 69530242, 69530259, 69530276, 69530293,
       69530310, 69530327, 69530344, 69530361, 69530378, 69530395, 69530412,
       69530429, 69530446, 69530463, 69530480, 69530497, 69530514, 69530531,
       69530548, 69530565, 69530582, 69530599, 69530616, 69530633, 69530650,
       69530666, 69530682, 69530698, 69530714, 69530730, 69530746, 69530762,
       69530778, 69530794, 69530810, 69530826, 69530842, 69530858, 69530874,
       69530890, 69530906, 69530922, 69530938, 69530954, 69530970, 69530986,
       69531002, 69531018, 69531034, 69531050, 69531066, 69531082, 69531098,
       69531114, 69531130, 69531146, 69531162, 69531178, 69531194, 69531210,
       69531226, 69531242, 69531258, 69531274, 69531290, 69531306, 69531322,
       69531338, 69531354, 69531370, 69531386, 69531402, 69531418, 69531434,
       69531450, 69531466, 69531482, 69531498, 69531514, 69531530, 69531546,
       69531562, 69531578, 69531594, 69531610, 69531626, 69531642, 69531658,
       69531674, 69531690, 69531706, 69531722, 69531738, 69531754, 69531770,
       69531786, 69531802, 69531818, 69531834, 69531850, 69531866, 69531882,
       69531898, 69531914, 69531930, 69531946, 69531962, 69531978, 69531994,
       69532010, 69532026, 69532042, 69532058, 69532074, 69532090, 69532106,
       69532122, 69532138, 69532154, 69532170, 69532186, 69532202, 69532218,
       69532234, 69532250, 69532266, 69532282, 69532298, 69532314, 69532330,
       69532346, 69532362, 69532378, 69532394, 69532410, 69532426, 69532442,
       69532458, 69532474, 69532490, 69532506, 69532522, 69532538, 69532554,
       69532569, 69532584, 69532599, 69532614, 69532629, 69532644, 69532659,
       69532674, 69532689, 69532704, 69532719, 69532734, 69532749, 69532764,
       69532779, 69532794, 69532809, 69532824, 69532839, 69532854, 69532869,
       69532884, 69532899, 69532914, 69532929, 69532944, 69532959, 69532974,
       69532989, 69533004, 69533019, 69533034, 69533049, 69533064, 69533079,
       69533094, 69533109, 69533124, 69533139, 69533154, 69533169, 69533184,
       69533199, 69533214, 69533229, 69533244, 69533259, 69533274, 69533289,
       69533304, 69533319, 69533334, 69533349, 69533364, 69533379, 69533394,
       69533409, 69533424, 69533439, 69533454, 69533469, 69533484, 69533499,
       69533514, 69533529, 69533544, 69533559, 69533574, 69533589, 69533604,
       69533619, 69533634, 69533649, 69533664, 69533679, 69533694, 69533709,
       69533724, 69533739, 69533754, 69533769, 69533784, 69533799, 69533814,
       69533829, 69533844, 69533859, 69533874, 69533889, 69533904, 69533919,
       69533934, 69533949, 69533964, 69533979, 69533994, 69534009, 69534024,
       69534039, 69534054, 69534069, 69534084, 69534099, 69534114, 69534129,
       69534144, 69534159, 69534174, 69534189, 69534204, 69534219, 69534233,
       69534247, 69534261, 69534275, 69534289, 69534303, 69534317, 69534331,
       69534345, 69534359, 69534373, 69534387, 69534401, 69534415, 69534429,
       69534443, 69534457, 69534471, 69534485, 69534499, 69534513, 69534527,
       69534541, 69534555, 69534569, 69534583, 69534597, 69534611, 69534625,
       69534639, 69534653, 69534667, 69534681, 69534695, 69534709, 69534723,
       69534737, 69534751, 69534765, 69534779, 69534793, 69534807, 69534821,
       69534835, 69534849, 69534863, 69534877, 69534891, 69534905, 69534919,
       69534933, 69534947, 69534961, 69534975, 69534989, 69535003, 69535017,
       69535031, 69535045, 69535059, 69535073, 69535087, 69535101, 69535115,
       69535129, 69535143, 69535157, 69535171, 69535185, 69535199, 69535213,
       69535227, 69535241, 69535255, 69535269, 69535283, 69535297, 69535311,
       69535325, 69535339, 69535353, 69535367, 69535381, 69535395, 69535409,
       69535423, 69535437, 69535451, 69535465, 69535479, 69535493, 69535507,
       69535521, 69535535, 69535549, 69535563, 69535577, 69535591, 69535605,
       69535619, 69535633, 69535647, 69535661, 69535675, 69535689, 69535703,
       69535717, 69535731, 69535744, 69535757, 69535770, 69535783, 69535796,
       69535809, 69535822, 69535835, 69535848, 69535861, 69535874, 69535887,
       69535900, 69535913, 69535926, 69535939, 69535952, 69535965, 69535978,
       69535991, 69536004, 69536017, 69536030, 69536043, 69536056, 69536069,
       69536082, 69536095, 69536108, 69536121, 69536134, 69536147, 69536160,
       69536173, 69536186, 69536199, 69536212, 69536225, 69536238, 69536251,
       69536264, 69536277, 69536290, 69536303, 69536316, 69536329, 69536342,
       69536355, 69536368, 69536381, 69536394, 69536407, 69536420, 69536433,
       69536446, 69536459, 69536472, 69536485, 69536498, 69536511, 69536524,
       69536537, 69536550, 69536563, 69536576, 69536589, 69536602, 69536615,
       69536628, 69536641, 69536654, 69536667, 69536680, 69536693, 69536706,
       69536719, 69536732, 69536745, 69536758, 69536771, 69536784, 69536797,
       69536810, 69536823, 69536836, 69536849, 69536862, 69536875, 69536888,
       69536901, 69536914, 69536927, 69536940, 69536953, 69536966, 69536979,
       69536992, 69537005, 69537018, 69537031, 69537044, 69537057, 69537070,
       69537083, 69537096, 69537109, 69537122, 69537135, 69537148, 69537161,
       69537174, 69537187, 69537200, 69537213, 69537226, 69537239, 69537252,
       69537265, 69537278, 69537291, 69537304, 69537317, 69537330, 69537343,
       69537356, 69537369, 69537381, 69537393, 69537405, 69537417, 69537429,
       69537441, 69537453, 69537465, 69537477, 69537489, 69537501, 69537513,
       69537525, 69537537, 69537549, 69537561, 69537573, 69537585, 69537597,
       69537609, 69537621, 69537633, 69537645, 69537657, 69537669, 69537681,
       69537693, 69537705, 69537717, 69537729, 69537741, 69537753, 69537765,
       69537777, 69537789, 69537801, 69537813, 69537825, 69537837, 69537849,
       69537861, 69537873, 69537885, 69537897, 69537909, 69537921, 69537933,
       69537945, 69537957, 69537969, 69537981, 69537993, 69538005, 69538017,
       69538029, 69538041, 69538053, 69538065, 69538077, 69538089, 69538101,
       69538113, 69538125, 69538137, 69538149, 69538161, 69538173, 69538185,
       69538197, 69538209, 69538221, 69538233, 69538245, 69538257, 69538269,
       69538281, 69538293, 69538305, 69538317, 69538329, 69538341, 69538353,
       69538365, 69538377, 69538389, 69538401, 69538413, 69538425, 69538437,
       69538449, 69538461, 69538473, 69538485, 69538497, 69538509, 69538521,
       69538533, 69538545, 69538557, 69538569, 69538581, 69538593, 69538605,
       69538617, 69538629, 69538641, 69538653, 69538665, 69538677, 69538689,
       69538701, 69538713, 69538725, 69538737, 69538749, 69538761, 69538773,
       69538785, 69538797, 69538809, 69538821, 69538833, 69538845, 69538857,
       69538869, 69538881, 69538893, 69538904, 69538915, 69538926, 69538937,
       69538948, 69538959, 69538970, 69538981, 69538992, 69539003, 69539014,
       69539025, 69539036, 69539047, 69539058, 69539069, 69539080, 69539091,
       69539102, 69539113, 69539124, 69539135, 69539146, 69539157, 69539168,
       69539179, 69539190, 69539201, 69539212, 69539223, 69539234, 69539245,
       69539256, 69539267, 69539278, 69539289, 69539300, 69539311, 69539322,
       69539333, 69539344, 69539355, 69539366, 69539377, 69539388, 69539399,
       69539410, 69539421, 69539432, 69539443, 69539454, 69539465, 69539476,
       69539487, 69539498, 69539509, 69539520, 69539531, 69539542, 69539553,
       69539564, 69539575, 69539586, 69539597, 69539608, 69539619, 69539630,
       69539641, 69539652, 69539663, 69539674, 69539685, 69539696, 69539707,
       69539718, 69539729, 69539740, 69539751, 69539762, 69539773, 69539784,
       69539795, 69539806, 69539817, 69539828, 69539839, 69539850, 69539861,
       69539872, 69539883, 69539894, 69539905, 69539916, 69539927, 69539938,
       69539949, 69539960, 69539971, 69539982, 69539993, 69540004, 69540015,
       69540026, 69540037, 69540048, 69540059, 69540070, 69540081, 69540092,
       69540103, 69540114, 69540125, 69540136, 69540147, 69540158, 69540169,
       69540180, 69540191, 69540202, 69540213, 69540224, 69540235, 69540246,
       69540257, 69540268, 69540279, 69540290, 69540301, 69540312, 69540323,
       69540334, 69540345, 69540356, 69540367, 69540378, 69540389, 69540400,
       69540411, 69540422, 69540433, 69540444, 69540455, 69540466, 69540477,
       69540488, 69540499, 69540510, 69540521, 69540532, 69540543, 69540554,
       69540565, 69540576, 69540587, 69540598, 69540609, 69540620, 69540631,
       69540642, 69540653, 69540664, 69540675, 69540686, 69540697, 69540698,
       69540699, 69540700, 69540701, 69540702, 69540703, 69540704, 69540705,
       69540706, 69540707, 69540708, 69540709, 69540710, 69540711, 69540712,
       69540713, 69540714, 69540715, 69540716, 69540717, 69540718, 69540719,
       69540720, 69540721, 69540722, 69540723, 69540724, 69540725, 69540726,
       69540727, 69540728, 69540729, 69540730, 69540731, 69540732, 69540733,
       69540734, 69540735, 69540736, 69540737, 69540738, 69540739, 69540740,
       69540741, 69540742, 69540743, 69540744, 69540745, 69540746, 69540747,
       69540748, 69540749, 69540750, 69540751, 69540752, 69540753, 69540754,
       69540755, 69540756, 69540757, 69540758, 69540759, 69540760, 69540761,
       69540762, 69540763, 69540764, 69540765, 69540766, 69540767, 69540768,
       69540769, 69540770, 69540771, 69540772, 69540773, 69540774, 69540775,
       69540776, 69540777, 69540778, 69540779, 69540780, 69540781, 69540782,
       69540783, 69540784, 69540785, 69540786, 69540787, 69540788, 69540789,
       69540790, 69540791, 69540792, 69540793, 69540794, 69540795, 69540796,
       69540797, 69540798, 69540799, 69540800, 69540801, 69540802, 69540803,
       69540804, 69540805, 69540806, 69540807, 69540808, 69540809, 69540810,
       69540811, 69540812, 69540813, 69540814, 69540815, 69540816, 69540817,
       69540818, 69540819, 69540820, 69540821, 69540822, 69540823, 69540824,
       69540825, 69540826, 69540827, 69540828, 69540829, 69540830, 69540831,
       69540832, 69540833, 69540834, 69540835, 69540836, 69540837, 69540838,
       69540839, 69540840, 69540841, 69540842, 69540843, 69540844, 69540845,
       69540846, 69540847, 69540848, 69540849, 69540850, 69540851, 69540852,
       69540853, 69540854, 69540855, 69540856, 69540857, 69540858, 69540859,
       69540860, 69540861, 69540862, 69540863, 69540864, 69540865, 69540866,
       69540867, 69540868, 69540869, 69540870, 69540871, 69540872, 69540873,
       69540874, 69540875, 69540876, 69540877, 69540878, 69540879, 69540880,
       69540881, 69540882, 69540891, 69540900, 69540909, 69540918, 69540927,
       69540936, 69540945, 69540954, 69540963, 69540972, 69540981, 69540990,
       69540999, 69541008, 69541017, 69541026, 69541035, 69541044, 69541053,
       69541062, 69541071, 69541080, 69541089, 69541098, 69541107, 69541116,
       69541125, 69541134, 69541143, 69541152, 69541161, 69541170, 69541179,
       69541188, 69541197, 69541206, 69541215, 69541224, 69541233, 69541242,
       69541251, 69541260, 69541269, 69541278, 69541287, 69541296, 69541305,
       69541314, 69541323, 69541332, 69541341, 69541350, 69541359, 69541368,
       69541377, 69541386, 69541395, 69541404, 69541413, 69541422, 69541431,
       69541440, 69541449, 69541458, 69541467, 69541476, 69541485, 69541494,
       69541503, 69541512, 69541521, 69541530, 69541539, 69541548, 69541557,
       69541566, 69541575, 69541584, 69541593, 69541602, 69541611, 69541620,
       69541629, 69541638, 69541647, 69541656, 69541665, 69541674, 69541683,
       69541692, 69541701, 69541710, 69541719, 69541728, 69541737, 69541746,
       69541755, 69541764, 69541773, 69541782, 69541791, 69541800, 69541809,
       69541818, 69541827, 69541836, 69541845, 69541854, 69541863, 69541872,
       69541881, 69541890, 69541899, 69541908, 69541917, 69541926, 69541935,
       69541944, 69541953, 69541962, 69541971, 69541980, 69541989, 69541998,
       69542007, 69542016, 69542025, 69542034, 69542043, 69542052, 69542061,
       69542070, 69542079, 69542088, 69542097, 69542106, 69542115, 69542124,
       69542133, 69542142, 69542151, 69542160, 69542169, 69542178, 69542187,
       69542196, 69542205, 69542214, 69542223, 69542232, 69542241, 69542250,
       69542259, 69542268, 69542277, 69542286, 69542295, 69542304, 69542313,
       69542322, 69542331, 69542340, 69542349, 69542358, 69542367, 69542376,
       69542385, 69542394, 69542403, 69542412, 69542421, 69542430, 69542439,
       69542448, 69542457, 69542466, 69542475, 69542484, 69542493, 69542502,
       69542511, 69542520, 69542529, 69542538, 69542547, 69542556, 69542565,
       69542574, 69542583, 69542592, 69542601, 69542610, 69542619, 69542628,
       69542637, 69542646, 69542655, 69542664, 69542673, 69542682, 69542691,
       69542700, 69542709, 69542718, 69542727, 69542736, 69542745, 69542753,
       69542761, 69542769, 69542777, 69542785, 69542793, 69542801, 69542809,
       69542817, 69542825, 69542833, 69542841, 69542849, 69542857, 69542865,
       69542873, 69542881, 69542889, 69542897, 69542905, 69542913, 69542921,
       69542929, 69542937, 69542945, 69542953, 69542961, 69542969, 69542977,
       69542985, 69542993, 69543001, 69543009, 69543017, 69543025, 69543033,
       69543041, 69543049, 69543057, 69543065, 69543073, 69543081, 69543089,
       69543097, 69543105, 69543113, 69543121, 69543129, 69543137, 69543145,
       69543153, 69543161, 69543169, 69543177, 69543185, 69543193, 69543201,
       69543209, 69543217, 69543225, 69543233, 69543241, 69543249, 69543257,
       69543265, 69543273, 69543281, 69543289, 69543297, 69543305, 69543313,
       69543321, 69543329, 69543337, 69543345, 69543353, 69543361, 69543369,
       69543377, 69543385, 69543393, 69543401, 69543409, 69543417, 69543425,
       69543433, 69543441, 69543449, 69543457, 69543465, 69543473, 69543481,
       69543489, 69543497, 69543505, 69543513, 69543521, 69543529, 69543537,
       69543545, 69543553, 69543561, 69543569, 69543577, 69543585, 69543593,
       69543601, 69543609, 69543617, 69543625, 69543633, 69543641, 69543649,
       69543657, 69543665, 69543673, 69543681, 69543689, 69543697, 69543705,
       69543713, 69543721, 69543729, 69543737, 69543745, 69543753, 69543761,
       69543769, 69543777, 69543785, 69543793, 69543801, 69543809, 69543817,
       69543825, 69543833, 69543841, 69543849, 69543857, 69543865, 69543873,
       69543881, 69543889, 69543897, 69543905, 69543913, 69543921, 69543929,
       69543937, 69543945, 69543953, 69543961, 69543969, 69543977, 69543985,
       69543993, 69544001, 69544009, 69544017, 69544025, 69544033, 69544041,
       69544049, 69544057, 69544065, 69544073, 69544081, 69544089, 69544097,
       69544105, 69544113, 69544121, 69544129, 69544137, 69544145, 69544153,
       69544161, 69544169, 69544177, 69544185, 69544193, 69544201, 69544209,
       69544217, 69544225, 69544233, 69544241, 69544249, 69544257, 69544265,
       69544273, 69544281, 69544289, 69544297, 69544305, 69544313, 69544321,
       69544329, 69544337, 69544345, 69544353, 69544361, 69544369, 69544377,
       69544385, 69544393, 69544401, 69544409, 69544417, 69544425, 69544433,
       69544441, 69544449, 69544457, 69544465, 69544473, 69544481, 69544489,
       69544497, 69544505, 69544513, 69544521, 69544529, 69544537, 69544545,
       69544553, 69544561, 69544569, 69544577, 69544585, 69544593, 69544601,
       69544609, 69544617, 69544625, 69544633, 69544641, 69544649, 69544657,
       69544665, 69544673, 69544681, 69544689, 69544697, 69544705, 69544713,
       69544721, 69544729, 69544737, 69544745, 69544753, 69544761, 69544769,
       69544777, 69544785, 69544793, 69544800, 69544807, 69544814, 69544821,
       69544828, 69544835, 69544842, 69544849, 69544856, 69544863, 69544870,
       69544877, 69544884, 69544891, 69544898, 69544905, 69544912, 69544919,
       69544926, 69544933, 69544940, 69544947, 69544954, 69544961, 69544968,
       69544975, 69544982, 69544989, 69544996, 69545003, 69545010, 69545017,
       69545024, 69545031, 69545038, 69545045, 69545052, 69545059, 69545066,
       69545073, 69545080, 69545087, 69545094, 69545101, 69545108, 69545115,
       69545122, 69545129, 69545136, 69545143, 69545150, 69545157, 69545164,
       69545171, 69545178, 69545185, 69545192, 69545199, 69545206, 69545213,
       69545220, 69545227, 69545234, 69545241, 69545248, 69545255, 69545262,
       69545269, 69545276, 69545283, 69545290, 69545297, 69545304, 69545311,
       69545318, 69545325, 69545332, 69545339, 69545346, 69545353, 69545360,
       69545367, 69545374, 69545381, 69545388, 69545395, 69545402, 69545409,
       69545416, 69545423, 69545430, 69545437, 69545444, 69545451, 69545458,
       69545465, 69545472, 69545479, 69545486, 69545493, 69545500, 69545507,
       69545514, 69545521, 69545528, 69545535, 69545542, 69545549, 69545556,
       69545563, 69545570, 69545577, 69545584, 69545591, 69545598, 69545605,
       69545612, 69545619, 69545626, 69545633, 69545640, 69545647, 69545654,
       69545661, 69545668, 69545675, 69545682, 69545689, 69545696, 69545703,
       69545710, 69545717, 69545724, 69545731, 69545738, 69545745, 69545752,
       69545759, 69545766, 69545773, 69545780, 69545787, 69545794, 69545801,
       69545808, 69545815, 69545822, 69545829, 69545836, 69545843, 69545850,
       69545857, 69545864, 69545871, 69545878, 69545885, 69545892, 69545899,
       69545906, 69545913, 69545920, 69545927, 69545934, 69545941, 69545948,
       69545955, 69545962, 69545969, 69545976, 69545983, 69545990, 69545997,
       69546004, 69546011, 69546018, 69546025, 69546032, 69546039, 69546046,
       69546053, 69546060, 69546067, 69546074, 69546081, 69546088, 69546095,
       69546102, 69546109, 69546116, 69546123, 69546130, 69546137, 69546144,
       69546151, 69546158, 69546165, 69546172, 69546179, 69546186, 69546193,
       69546200, 69546207, 69546214, 69546221, 69546228, 69546235, 69546242,
       69546249, 69546256, 69546263, 69546270, 69546277, 69546284, 69546291,
       69546298, 69546305, 69546312, 69546319, 69546326, 69546333, 69546340,
       69546347, 69546354, 69546361, 69546368, 69546375, 69546382, 69546389,
       69546396, 69546403, 69546410, 69546417, 69546424, 69546431, 69546438,
       69546445, 69546452, 69546459, 69546466, 69546473, 69546480, 69546487,
       69546494, 69546501, 69546508, 69546515, 69546522, 69546529, 69546536,
       69546543, 69546550, 69546557, 69546564, 69546571, 69546578, 69546585,
       69546592, 69546599, 69546605, 69546611, 69546617, 69546623, 69546629,
       69546635, 69546641, 69546647, 69546653, 69546659, 69546665, 69546671,
       69546677, 69546683, 69546689, 69546695, 69546701, 69546707, 69546713,
       69546719, 69546725, 69546731, 69546737, 69546743, 69546749, 69546755,
       69546761, 69546767, 69546773, 69546779, 69546785, 69546791, 69546797,
       69546803, 69546809, 69546815, 69546821, 69546827, 69546833, 69546839,
       69546845, 69546851, 69546857, 69546863, 69546869, 69546875, 69546881,
       69546887, 69546893, 69546899, 69546905, 69546911, 69546917, 69546923,
       69546929, 69546935, 69546941, 69546947, 69546953, 69546959, 69546965,
       69546971, 69546977, 69546983, 69546989, 69546995, 69547001, 69547007,
       69547013, 69547019, 69547025, 69547031, 69547037, 69547043, 69547049,
       69547055, 69547061, 69547067, 69547073, 69547079, 69547085, 69547091,
       69547097, 69547103, 69547109, 69547115, 69547121, 69547127, 69547133,
       69547139, 69547145, 69547151, 69547157, 69547163, 69547169, 69547175,
       69547181, 69547187, 69547193, 69547199, 69547205, 69547211, 69547217,
       69547223, 69547229, 69547235, 69547241, 69547247, 69547253, 69547259,
       69547265, 69547271, 69547277, 69547283, 69547289, 69547295, 69547301,
       69547307, 69547313, 69547319, 69547325, 69547331, 69547337, 69547343,
       69547349, 69547355, 69547361, 69547367, 69547373, 69547379, 69547385,
       69547391, 69547397, 69547403, 69547409, 69547415, 69547421, 69547427,
       69547433, 69547439, 69547445, 69547451, 69547457, 69547463, 69547469,
       69547475, 69547481, 69547487, 69547493, 69547499, 69547505, 69547511,
       69547517, 69547523, 69547529, 69547535, 69547541, 69547547, 69547553,
       69547559, 69547565, 69547571, 69547577, 69547583, 69547589, 69547595,
       69547601, 69547607, 69547613, 69547619, 69547625, 69547631, 69547637,
       69547643, 69547649, 69547655, 69547661, 69547667, 69547673, 69547679,
       69547685, 69547691, 69547697, 69547703, 69547709, 69547715, 69547721,
       69547727, 69547733, 69547739, 69547745, 69547751, 69547757, 69547763,
       69547769, 69547775, 69547781, 69547787, 69547793, 69547799, 69547805,
       69547811, 69547817, 69547823, 69547829, 69547835, 69547841, 69547847,
       69547853, 69547859, 69547865, 69547871, 69547877, 69547883, 69547889,
       69547895, 69547901, 69547907, 69547913, 69547919, 69547925, 69547931,
       69547937, 69547943, 69547949, 69547955, 69547961, 69547967, 69547973,
       69547979, 69547985, 69547991, 69547997, 69548003, 69548009, 69548015,
       69548021, 69548027, 69548033, 69548039, 69548045, 69548051, 69548057,
       69548063, 69548069, 69548075, 69548081, 69548087, 69548093, 69548099,
       69548105, 69548111, 69548117, 69548123, 69548129, 69548135, 69548141,
       69548147, 69548153, 69548159, 69548165, 69548171, 69548177, 69548183,
       69548189, 69548195, 69548201, 69548207, 69548213, 69548219, 69548225,
       69548231, 69548237, 69548243, 69548249, 69548255, 69548261, 69548267,
       69548273, 69548279, 69548285, 69548291, 69548297, 69548303, 69548309,
       69548315, 69548321, 69548327, 69548333, 69548339, 69548345, 69548351,
       69548357, 69548363, 69548369, 69548375, 69548381, 69548387, 69548393,
       69548399, 69548405, 69548411, 69548416, 69548421, 69548426, 69548431,
       69548436, 69548441, 69548446, 69548451, 69548456, 69548461, 69548466,
       69548471, 69548476, 69548481, 69548486, 69548491, 69548496, 69548501,
       69548506, 69548511, 69548516, 69548521, 69548526, 69548531, 69548536,
       69548541, 69548546, 69548551, 69548556, 69548561, 69548566, 69548571,
       69548576, 69548581, 69548586, 69548591, 69548596, 69548601, 69548606,
       69548611, 69548616, 69548621, 69548626, 69548631, 69548636, 69548641,
       69548646, 69548651, 69548656, 69548661, 69548666, 69548671, 69548676,
       69548681, 69548686, 69548691, 69548696, 69548701, 69548706, 69548711,
       69548716, 69548721, 69548726, 69548731, 69548736, 69548741, 69548746,
       69548751, 69548756, 69548761, 69548766, 69548771, 69548776, 69548781,
       69548786, 69548791, 69548796, 69548801, 69548806, 69548811, 69548816,
       69548821, 69548826, 69548831, 69548836, 69548841, 69548846, 69548851,
       69548856, 69548861, 69548866, 69548871, 69548876, 69548881, 69548886,
       69548891, 69548896, 69548901, 69548906, 69548911, 69548916, 69548921,
       69548926, 69548931, 69548936, 69548941, 69548946, 69548951, 69548956,
       69548961, 69548966, 69548971, 69548976, 69548981, 69548986, 69548991,
       69548996, 69549001, 69549006, 69549011, 69549016, 69549021, 69549026,
       69549031, 69549036, 69549041, 69549046, 69549051, 69549056, 69549061,
       69549066, 69549071, 69549076, 69549081, 69549086, 69549091, 69549096,
       69549101, 69549106, 69549111, 69549116, 69549121, 69549126, 69549131,
       69549136, 69549141, 69549146, 69549151, 69549156, 69549161, 69549166,
       69549171, 69549176, 69549181, 69549186, 69549191, 69549196, 69549201,
       69549206, 69549211, 69549216, 69549221, 69549226, 69549231, 69549236,
       69549241, 69549246, 69549251, 69549256, 69549261, 69549266, 69549271,
       69549276, 69549281, 69549286, 69549291, 69549296, 69549301, 69549306,
       69549311, 69549316, 69549321, 69549326, 69549331, 69549336, 69549341,
       69549346, 69549351, 69549356, 69549361, 69549366, 69549371, 69549376,
       69549381, 69549386, 69549391, 69549396, 69549401, 69549406, 69549411,
       69549416, 69549421, 69549426, 69549431, 69549436, 69549441, 69549446,
       69549451, 69549456, 69549461, 69549466, 69549471, 69549476, 69549481,
       69549486, 69549491, 69549496, 69549501, 69549506, 69549511, 69549516,
       69549521, 69549526, 69549531, 69549536, 69549541, 69549546, 69549551,
       69549556, 69549561, 69549566, 69549571, 69549576, 69549581, 69549586,
       69549591, 69549596, 69549601, 69549606, 69549611, 69549616, 69549621,
       69549626, 69549631, 69549636, 69549641, 69549646, 69549651, 69549656,
       69549661, 69549666, 69549671, 69549676, 69549681, 69549686, 69549691,
       69549696, 69549701, 69549706, 69549711, 69549716, 69549721, 69549726,
       69549731, 69549736, 69549741, 69549746, 69549751, 69549756, 69549761,
       69549766, 69549771, 69549776, 69549781, 69549786, 69549791, 69549796,
       69549801, 69549806, 69549811, 69549816, 69549821, 69549826, 69549831,
       69549836, 69549841, 69549846, 69549851, 69549856, 69549861, 69549866,
       69549871, 69549876, 69549881, 69549886, 69549891, 69549896, 69549901,
       69549906, 69549911, 69549916, 69549921, 69549926, 69549931, 69549936,
       69549941, 69549946, 69549951, 69549956, 69549961, 69549966, 69549971,
       69549976, 69549981, 69549986, 69549991, 69549996, 69550001, 69550006,
       69550011, 69550016, 69550021, 69550026, 69550031, 69550036, 69550041,
       69550046, 69550051, 69550056, 69550061, 69550066, 69550071, 69550076,
       69550081, 69550086, 69550091, 69550096, 69550101, 69550106, 69550111,
       69550116, 69550121, 69550126, 69550131, 69550136, 69550141, 69550146,
       69550151, 69550156, 69550161, 69550166, 69550171, 69550176, 69550181,
       69550186, 69550191, 69550196, 69550201, 69550206, 69550211, 69550216,
       69550221, 69550226, 69550231, 69550236, 69550241, 69550246, 69550251,
       69550256, 69550261, 69550266, 69550271, 69550276, 69550281, 69550286,
       69550291, 69550296, 69550301, 69550306, 69550311, 69550316, 69550321,
       69550326, 69550331, 69550336, 69550341, 69550346, 69550351, 69550356,
       69550361, 69550366, 69550371, 69550376, 69550381, 69550386, 69550390,
       69550394, 69550398, 69550402, 69550406, 69550410, 69550414, 69550418,
       69550422, 69550426, 69550430, 69550434, 69550438, 69550442, 69550446,
       69550450, 69550454, 69550458, 69550462, 69550466, 69550470, 69550474,
       69550478, 69550482, 69550486, 69550490, 69550494, 69550498, 69550502,
       69550506, 69550510, 69550514, 69550518, 69550522, 69550526, 69550530,
       69550534, 69550538, 69550542, 69550546, 69550550, 69550554, 69550558,
       69550562, 69550566, 69550570, 69550574, 69550578, 69550582, 69550586,
       69550590, 69550594, 69550598, 69550602, 69550606, 69550610, 69550614,
       69550618, 69550622, 69550626, 69550630, 69550634, 69550638, 69550642,
       69550646, 69550650, 69550654, 69550658, 69550662, 69550666, 69550670,
       69550674, 69550678, 69550682, 69550686, 69550690, 69550694, 69550698,
       69550702, 69550706, 69550710, 69550714, 69550718, 69550722, 69550726,
       69550730, 69550734, 69550738, 69550742, 69550746, 69550750, 69550754,
       69550758, 69550762, 69550766, 69550770, 69550774, 69550778, 69550782,
       69550786, 69550790, 69550794, 69550798, 69550802, 69550806, 69550810,
       69550814, 69550818, 69550822, 69550826, 69550830, 69550834, 69550838,
       69550842, 69550846, 69550850, 69550854, 69550858, 69550862, 69550866,
       69550870, 69550874, 69550878, 69550882, 69550886, 69550890, 69550894,
       69550898, 69550902, 69550906, 69550910, 69550914, 69550918, 69550922,
       69550926, 69550930, 69550934, 69550938, 69550942, 69550946, 69550950,
       69550954, 69550958, 69550962, 69550966, 69550970, 69550974, 69550978,
       69550982, 69550986, 69550990, 69550994, 69550998, 69551002, 69551006,
       69551010, 69551014, 69551018, 69551022, 69551026, 69551030, 69551034,
       69551038, 69551042, 69551046, 69551050, 69551054, 69551058, 69551062,
       69551066, 69551070, 69551074, 69551078, 69551082, 69551086, 69551090,
       69551094, 69551098, 69551102, 69551106, 69551110, 69551114, 69551118,
       69551122, 69551126, 69551130, 69551134, 69551138, 69551142, 69551146,
       69551150, 69551154, 69551158, 69551162, 69551166, 69551170, 69551174,
       69551178, 69551182, 69551186, 69551190, 69551194, 69551198, 69551202,
       69551206, 69551210, 69551214, 69551218, 69551222, 69551226, 69551230,
       69551234, 69551238, 69551242, 69551246, 69551250, 69551254, 69551258,
       69551262, 69551266, 69551270, 69551274, 69551278, 69551282, 69551286,
       69551290, 69551294, 69551298, 69551302, 69551306, 69551310, 69551314,
       69551318, 69551322, 69551326, 69551330, 69551334, 69551338, 69551342,
       69551346, 69551350, 69551354, 69551358, 69551362, 69551366, 69551370,
       69551374, 69551378, 69551382, 69551386, 69551390, 69551394, 69551398,
       69551402, 69551406, 69551410, 69551414, 69551418, 69551422, 69551426,
       69551430, 69551434, 69551438, 69551442, 69551446, 69551450, 69551454,
       69551458, 69551462, 69551466, 69551470, 69551474, 69551478, 69551482,
       69551486, 69551490, 69551494, 69551498, 69551502, 69551506, 69551510,
       69551514, 69551518, 69551522, 69551526, 69551530, 69551534, 69551538,
       69551542, 69551546, 69551550, 69551554, 69551558, 69551562, 69551566,
       69551570, 69551574, 69551578, 69551582, 69551586, 69551590, 69551594,
       69551598, 69551602, 69551606, 69551610, 69551614, 69551618, 69551622,
       69551626, 69551630, 69551634, 69551638, 69551642, 69551646, 69551650,
       69551654, 69551658, 69551662, 69551666, 69551670, 69551674, 69551678,
       69551682, 69551686, 69551690, 69551694, 69551698, 69551702, 69551706,
       69551710, 69551714, 69551718, 69551722, 69551726, 69551730, 69551734,
       69551738, 69551742, 69551746, 69551750, 69551754, 69551758, 69551762,
       69551766, 69551770, 69551774, 69551778, 69551782, 69551786, 69551790,
       69551794, 69551798, 69551802, 69551806, 69551810, 69551814, 69551818,
       69551822, 69551826, 69551830, 69551834, 69551838, 69551842, 69551846,
       69551850, 69551854, 69551858, 69551862, 69551866, 69551870, 69551874,
       69551878, 69551882, 69551886, 69551890, 69551894, 69551898, 69551902,
       69551906, 69551910, 69551914, 69551918, 69551922, 69551926, 69551930,
       69551934, 69551938, 69551942, 69551946, 69551950, 69551954, 69551958,
       69551962, 69551966, 69551970, 69551974, 69551978, 69551982, 69551986,
       69551990, 69551994, 69551998, 69552002, 69552006, 69552010, 69552014,
       69552018, 69552022, 69552026, 69552030, 69552034, 69552038, 69552042,
       69552046, 69552050, 69552054, 69552058, 69552062, 69552066, 69552070,
       69552074, 69552078, 69552082, 69552086, 69552090, 69552094, 69552098,
       69552102, 69552106, 69552110, 69552114, 69552118, 69552122, 69552126,
       69552130, 69552134, 69552138, 69552142, 69552146, 69552150, 69552154,
       69552158, 69552162, 69552166, 69552170, 69552174, 69552178, 69552182,
       69552186, 69552190, 69552194, 69552198, 69552202, 69552206, 69552210,
       69552214, 69552218};
     System.arraycopy(temp, 0, prob, prob.length - temp.length, temp.length);
   }

   private static int[] chars;
   private static void populateChars1() {
     chars = new int[10002];
     int[] temp = new int[] {32, 9, 10, 101, 97, 13, 105, 111,
        110, 116, 114, 115, 108, 100, 99, 117, 109, 104, 112, 103, 48, 46,
        98, 49, 160, 102, 50, 118, 121, 107, 44, 119, 45, 58, 51, 53, 52,
        57, 56, 106, 54, 122, 55, 47, 41, 40, 124, 120, 1103, 1072, 1086,
        113, 1080, 1575, 1077, 1085, 1090, 12540, 1088, 12398, 95, 1089, 39,
        1604, 33, 233, 12290, 30340, 1083, 1074, 12289, 12531, 1082, 12356,
        34, 3634, 91, 93, 63, 62, 1076, 225, 1605, 1084, 3609, 1610, 12395,
        12375, 1585, 1087, 1608, 12391, 12488, 3619, 1091, 12390, 243, 12377,
        1606, 61, 3629, 12473, 1578, 12427, 42, 12394, 12452, 12483, 12383,
        12539, 3656, 12392, 3648, 12434, 3585, 12414, 12399, 237, 38, 19968,
        12523, 1075, 20154, 12463, 252, 3617, 305, 3657, 3591, 59, 12364,
        1073, 1583, 1099, 1079, 1576, 20013, 224, 3633, 12363, 26085, 1607,
        43, 228, 12522, 12435, 12521, 12426, 12387, 22823, 3623, 24180, 231,
        12450, 3621, 3618, 26377, 1100, 3604, 1081, 1587, 1593, 29992, 3637,
        12425, 37, 246, 26032, 3588, 19981, 3626, 12373, 12418, 26159, 12371,
        60, 21697, 22312, 26376, 3607, 12464, 3636, 3610, 1095, 12471, 12525,
        2366, 19978, 12362, 126, 12358, 187, 12503, 227, 12479, 12428, 1577,
        3627, 1093, 25105, 12524, 12367, 3605, 945, 20998, 20250, 12489, 26412,
        12501, 183, 23398, 12467, 22269, 29983, 1601, 273, 3021, 8220, 8221,
        20316, 1602, 1603, 35, 25991, 12472, 20102, 12513, 64, 3632, 12354,
        12502, 12365, 22320, 20986, 34892, 23376, 32593, 51060, 21457, 12459,
        21517, 8230, 2381, 19979, 1497, 12384, 2352, 1493, 36, 1078, 12486,
        1740, 12510, 23567, 8226, 32773, 1600, 1588, 234, 26041, 959, 26368,
        3611, 26102, 12496, 12469, 1094, 23478, 1581, 3405, 20837, 3614, 3649,
        250, 22238, 964, 20010, 24773, 20844, 24066, 20197, 29702, 953, 1609,
        1110, 21512, 949, 34920, 12461, 351, 20840, 21069, 35201, 20107, 33258,
        12424, 1580, 232, 1101, 20214, 12481, 12300, 3652, 26009, 3586, 25163,
        12301, 3592, 21644, 21487, 33021, 12304, 12451, 21830, 8211, 322,
        1096, 2325, 12305, 22825, 25104, 12369, 39640, 21152, 12512, 3660,
        12385, 241, 20026, 3639, 20869, 23450, 20449, 1092, 4304, 22909, 25968,
        37329, 22810, 12458, 26469, 3640, 30005, 21040, 27861, 24037, 19994,
        957, 4312, 12381, 3641, 26426, 30475, 37096, 26178, 2375, 24515, 169,
        12491, 92, 3594, 32654, 31532, 12388, 24615, 12517, 28857, 12454,
        21306, 2344, 36890, 12415, 65533, 12379, 244, 1492, 1377, 12499, 963,
        2367, 28961, 20027, 26399, 32034, 45796, 35770, 255, 432, 12487, 12456,
        22899, 20182, 25152, 29289, 12519, 44592, 3277, 1102, 12515, 1582,
        226, 1589, 20307, 1586, 30011, 2360, 31995, 353, 29256, 229, 12393,
        20851, 21160, 36947, 38388, 1571, 1500, 20110, 8212, 39029, 961, 26126,
        12417, 27700, 12360, 2965, 3650, 30456, 36825, 12497, 3651, 26684,
        28023, 3149, 1512, 31038, 24230, 24215, 20870, 22577, 1514, 12475,
        22270, 12420, 30331, 12511, 30446, 94, 12372, 38754, 26381, 30693,
        12431, 25945, 21518, 22806, 26356, 954, 21451, 23665, 35211, 2340,
        27880, 21205, 3007, 960, 2350, 21270, 23433, 1591, 2368, 29305, 20301,
        20320, 12490, 39064, 32463, 21147, 31034, 51648, 20135, 21033, 23601,
        24687, 38382, 19977, 37117, 24335, 44032, 951, 4308, 2354, 21153,
        3655, 21516, 12509, 269, 21271, 7841, 8364, 9733, 25237, 31449, 12480,
        20204, 2980, 38291, 20445, 1502, 21496, 51032, 3009, 49828, 20803,
        36164, 281, 2351, 45716, 12506, 20140, 24403, 36865, 21495, 20043,
        20351, 38598, 235, 12474, 7871, 23545, 49324, 24847, 27425, 236, 20195,
        24471, 956, 26908, 347, 1488, 31185, 47196, 261, 2346, 1489, 12441,
        24320, 171, 20385, 32447, 54616, 35352, 380, 38480, 125, 27963, 50640,
        287, 23458, 3635, 1097, 7879, 123, 3263, 22120, 12484, 7843, 601,
        955, 19982, 12527, 31561, 39318, 12493, 36710, 31649, 20215, 30495,
        20132, 35828, 22914, 27491, 12408, 1398, 21407, 22580, 1590, 25552,
        35328, 44256, 21046, 962, 2357, 27671, 2379, 35199, 965, 3248, 257,
        20108, 49884, 382, 20063, 36807, 20040, 1513, 51064, 24863, 35780,
        23481, 47532, 12455, 26524, 51088, 25216, 2306, 245, 29616, 24314,
        35013, 21335, 21462, 29255, 26597, 31572, 37325, 19987, 33394, 54620,
        1705, 12465, 21578, 4320, 25151, 35299, 38899, 20170, 21475, 12495,
        24179, 31243, 31354, 25253, 21839, 12500, 31934, 30528, 2361, 26989,
        35270, 20854, 37324, 27969, 23383, 12514, 12376, 28216, 25910, 24433,
        30476, 4153, 3262, 35774, 19975, 2986, 1408, 32852, 22411, 12477,
        48372, 22797, 21450, 12419, 23454, 36827, 39135, 9632, 253, 9658,
        4321, 259, 25628, 36335, 12460, 240, 2990, 45768, 20687, 32771, 3391,
        37327, 21326, 21488, 12507, 248, 223, 24605, 38651, 96, 20855, 12429,
        12397, 35745, 3349, 31435, 24819, 49436, 2992, 24191, 24341, 3120,
        22522, 51012, 21592, 1400, 50500, 25509, 24212, 12505, 38271, 24405,
        7897, 26080, 24030, 24120, 33457, 20809, 22478, 12298, 20876, 27714,
        1504, 20184, 7899, 35831, 12299, 3612, 20309, 32423, 3134, 20048,
        27665, 36733, 20379, 19990, 28040, 26481, 1574, 3606, 26360, 3135,
        23453, 30000, 26415, 7845, 3006, 28982, 24744, 21435, 176, 2750, 1501,
        36215, 31070, 30330, 27604, 25512, 36824, 22330, 19996, 30007, 230,
        38306, 27231, 51221, 1381, 27005, 2975, 22363, 4317, 21482, 20808,
        25345, 35777, 3137, 36523, 32946, 36554, 36817, 21307, 31867, 38376,
        51068, 25918, 26143, 947, 3265, 25143, 23637, 26435, 7889, 242, 50612,
        12468, 33521, 38498, 26631, 943, 31295, 12400, 35239, 12449, 2342,
        24086, 1506, 3368, 21338, 12504, 37682, 20070, 21313, 249, 23569,
        25351, 35805, 27809, 30740, 29233, 25903, 49688, 1491, 7901, 7853,
        46020, 26408, 24067, 1573, 20171, 37197, 2369, 1594, 2327, 263, 26465,
        45824, 25171, 25919, 3603, 28909, 32780, 31456, 28304, 948, 7873,
        24460, 26495, 3376, 51204, 37027, 30333, 26696, 3240, 38283, 24456,
        12508, 940, 51228, 20877, 30334, 39057, 3624, 4315, 3390, 49345, 238,
        36153, 30721, 24029, 9734, 32622, 20225, 20849, 21463, 53944, 22235,
        21161, 21543, 36796, 26657, 51008, 25110, 30028, 2332, 27492, 21608,
        34255, 20889, 2997, 3221, 21521, 4314, 12494, 30001, 24555, 27004,
        27743, 21476, 22770, 30452, 2494, 417, 1495, 969, 46972, 24050, 1569,
        3112, 1579, 28779, 1508, 2994, 12409, 2985, 31119, 20219, 21333, 12457,
        26053, 165, 44536, 32004, 2348, 35760, 22791, 36899, 3595, 23558,
        22240, 9830, 35373, 3615, 31181, 20160, 1511, 35441, 12466, 36141,
        3223, 3122, 22763, 1584, 38263, 32769, 12470, 7911, 29579, 4305, 22303,
        1199, 21442, 50896, 51452, 20462, 28165, 20256, 35821, 45208, 20813,
        24418, 972, 32479, 26448, 39118, 35413, 1387, 3270, 21021, 21015,
        46300, 23436, 3608, 3238, 31350, 36895, 1570, 24072, 7875, 35813,
        3074, 22768, 1499, 21002, 21253, 1548, 34987, 37326, 4316, 1662, 20303,
        3393, 26679, 7847, 4152, 35797, 50836, 38750, 26395, 36896, 21508,
        26131, 35835, 3236, 35486, 2335, 24517, 21035, 21029, 44172, 21453,
        29699, 12378, 44396, 30149, 39321, 3638, 46041, 7883, 1711, 29694,
        12423, 3364, 4140, 32032, 3616, 8222, 3250, 27835, 59179, 36229, 3093,
        23627, 25506, 7907, 27468, 54868, 22836, 941, 8594, 22826, 23550,
        20491, 23460, 30707, 3256, 27454, 32467, 9679, 20581, 27668, 20415,
        31246, 33391, 25165, 26410, 20116, 36873, 3654, 36816, 1410, 12442,
        36074, 49457, 38500, 1505, 21019, 25307, 36716, 2480, 21619, 54644,
        3625, 24049, 25490, 30701, 47484, 2330, 3016, 2736, 191, 21729, 1257,
        1098, 30041, 49548, 25103, 48708, 20570, 31080, 21151, 37202, 31169,
        20174, 27169, 49888, 20123, 51109, 25454, 32929, 35215, 4309, 32080,
        25972, 25913, 180, 2970, 50689, 38738, 20294, 12302, 2991, 21345,
        20104, 32218, 35443, 12403, 23455, 215, 20999, 23548, 31215, 32473,
        30058, 30465, 23384, 48512, 28145, 12303, 4307, 47928, 24859, 26519,
        2995, 33410, 50857, 24535, 12516, 39564, 32452, 36148, 942, 20004,
        27096, 3370, 38988, 36617, 38405, 26149, 28436, 29366, 23798, 38450,
        36984, 24635, 21360, 35336, 8250, 966, 24110, 32048, 36820, 2509,
        24247, 36861, 3253, 3378, 174, 163, 186, 26449, 36719, 12416, 254,
        51080, 36009, 23616, 47560, 1396, 32454, 29031, 31639, 29575, 3597,
        3246, 33853, 38395, 2503, 36136, 54924, 35265, 24182, 2622, 24352,
        23621, 48120, 2358, 22987, 7885, 44277, 36039, 31505, 3202, 50668,
        24425, 4145, 20987, 35268, 952, 25773, 251, 967, 3128, 12411, 7909,
        283, 23494, 47564, 32476, 33616, 3851, 2728, 30010, 20799, 33829,
        49464, 3375, 24378, 44397, 4323, 4322, 22788, 1749, 2337, 3359, 36023,
        9834, 299, 1496, 24590, 31859, 25522, 38144, 7891, 26354, 12462, 36798,
        20080, 47924, 26045, 275, 7903, 337, 1391, 22253, 12498, 1490, 32844,
        44060, 38656, 21464, 22905, 35843, 7921, 7913, 8251, 2309, 8218, 35758,
        20540, 51004, 35753, 50724, 32534, 21209, 38451, 21363, 4096, 44284,
        324, 46308, 20139, 239, 20302, 2495, 22495, 22793, 2765, 2759, 8224,
        45236, 35069, 3114, 21150, 31616, 3125, 36275, 345, 1112, 44221, 29987,
        3247, 33267, 23130, 3384, 21315, 161, 7855, 31163, 40644, 27494, 30424,
        36234, 28201, 21806, 22242, 20363, 39532, 3330, 4311, 35501, 25214,
        29260, 25226, 2993, 28207, 35748, 3381, 36208, 27599, 20856, 4121,
        50976, 24102, 40857, 26223, 35814, 31216, 25928, 35759, 8482, 51312,
        35266, 3242, 35937, 24459, 44544, 21448, 3108, 2752, 27833, 25112,
        2472, 27770, 23646, 20248, 51652, 27979, 29609, 20934, 30524, 4143,
        24195, 2370, 35782, 24453, 4141, 3374, 1735, 50672, 2608, 2984, 32418,
        1592, 36942, 12370, 39033, 1510, 4112, 24540, 1397, 54252, 34880,
        38463, 27426, 30003, 26413, 8203, 27827, 50864, 36135, 20915, 26222,
        36830, 25252, 9670, 31687, 30906, 35272, 3118, 1407, 167, 44288, 12518,
        20843, 3377, 33647, 7919, 20845, 39365, 4100, 8249, 53552, 35810,
        27515, 26666, 20811, 31665, 25353, 8722, 23500, 35469, 1503, 31574,
        4306, 26144, 51077, 21322, 21916, 47784, 22336, 21490, 47732, 29577,
        38918, 38469, 24231, 26031, 26089, 7917, 1111, 24503, 12406, 12368,
        22659, 946, 24220, 27773, 28858, 23572, 21629, 26681, 32232, 3762,
        12402, 33322, 27573, 40657, 26512, 26174, 279, 20891, 31278, 48169,
        24577, 26371, 39764, 23427, 33402, 21452, 24211, 12374, 34915, 3110,
        1179, 35789, 26494, 35542, 9472, 29615, 27982, 26029, 1614, 9474,
        30332, 21834, 50504, 33041, 22812, 2734, 35874, 7893, 23041, 12293,
        39080, 9500, 50868, 21548, 27874, 32068, 21382, 3737, 21334, 24052,
        20122, 50948, 20241, 25511, 22855, 36939, 36130, 32500, 50556, 22686,
        33879, 30382, 3103, 20061, 26446, 20505, 177, 3119, 973, 24065, 31614,
        32066, 28246, 25289, 32856, 32154, 20064, 25215, 21547, 28608, 54617,
        9660, 33268, 2339, 22833, 181, 26680, 31227, 39044, 32676, 2349, 48148,
        37319, 339, 1114, 164, 27597, 36948, 36578, 32887, 27490, 54840, 8225,
        32076, 39030, 38134, 23713, 20960, 20030, 47308, 4117, 35282, 20181,
        2343, 53356, 21513, 25293, 170, 35519, 19969, 20117, 2709, 50629,
        178, 3095, 36092, 24076, 36814, 44368, 38190, 2453, 1405, 21527, 53440,
        26063, 1108, 25442, 36131, 35895, 51201, 2616, 20805, 54408, 2376,
        51473, 51020, 24613, 39006, 25126, 26397, 22871, 49373, 3257, 33324,
        38065, 20892, 24565, 20221, 3379, 54532, 46356, 2319, 23578, 37038,
        27493, 49440, 49845, 1406, 12422, 22259, 47588, 27983, 23448, 22827,
        30830, 1105, 27611, 3244, 22290, 24235, 36755, 26816, 35768, 22799,
        2310, 34899, 30053, 2741, 3251, 21312, 26500, 20778, 21507, 9829,
        35746, 32862, 4313, 20859, 31036, 24494, 3231, 38142, 12401, 39208,
        31881, 20037, 23487, 2631, 1494, 8240, 22343, 35910, 22283, 1670,
        371, 39046, 25925, 1392, 32057, 38431, 3233, 24178, 34903, 28459,
        38272, 51076, 3398, 33590, 182, 47112, 19971, 22530, 2476, 32178,
        24046, 2763, 27531, 3143, 27915, 3147, 35273, 12366, 2359, 36739,
        2724, 21319, 51116, 44228, 2690, 36753, 49892, 25658, 20113, 45380,
        20114, 52380, 2326, 52824, 24207, 47749, 1116, 35500, 24111, 21738,
        6098, 21942, 22996, 38590, 32207, 1388, 29486, 33756, 21387, 2488,
        33487, 48516, 2623, 24375, 30103, 2479, 7863, 46321, 9675, 36949,
        44144, 1118, 38609, 49885, 20041, 52852, 23626, 28010, 39134, 54028,
        3658, 23416, 36793, 28082, 7915, 49328, 25209, 3015, 21017, 3105,
        47785, 45936, 52404, 28168, 29275, 22521, 23475, 30772, 363, 23425,
        53664, 1567, 50900, 33865, 51089, 21048, 54633, 33539, 172, 2624,
        4334, 45432, 22856, 23395, 4123, 52628, 44036, 21095, 24213, 3098,
        31471, 27941, 21378, 1744, 30410, 29677, 21177, 29420, 28120, 4116,
        39280, 47084, 25240, 23401, 974, 27721, 50752, 38555, 1107, 28385,
        23470, 33310, 38442, 402, 47932, 36187, 36027, 38957, 2744, 20917,
        20633, 23429, 27801, 27010, 3271, 21542, 26379, 24651, 39340, 38477,
        33609, 3403, 12476, 21355, 36914, 26234, 21336, 35703, 4328, 35838,
        25915, 27849, 27704, 38543, 26044, 25321, 25563, 2341, 26497, 35430,
        28155, 20284, 21010, 32905, 9473, 23822, 27927, 54032, 31508, 45800,
        38169, 35531, 36938, 12532, 21320, 3784, 39443, 184, 22885, 31192,
        4126, 47197, 38597, 38745, 3354, 20339, 24198, 20358, 44163, 4129,
        33509, 36259, 24107, 2751, 2482, 36913, 162, 31168, 3142, 31105, 1115,
        54665, 20029, 20381, 12520, 4124, 35686, 31179, 21028, 24038, 2313,
        20852, 44552, 2598, 3785, 3136, 35757, 2979, 2581, 2478, 33719, 31461,
        2311, 25805, 19988, 21491, 35222, 21704, 35785, 20146, 20853, 50696,
        34276, 51200, 1119, 12353, 20105, 36866, 21439, 27966, 19997, 32422,
        2730, 38634, 38505, 32493, 39636, 48156, 2600, 20083, 36828, 24237,
        23554, 39000, 20919, 3014, 9492, 1385, 22870, 6070, 21892, 47700,
        7887, 21709, 38632, 24202, 26862, 2949, 24373, 36848, 8213, 2738,
        188, 47000, 24441, 36889, 38889, 34701, 21454, 46104, 53685, 44053,
        12405, 23089, 33464, 35775, 1379, 45224, 27431, 36864, 38081, 45348,
        24800, 24184, 36125, 34955, 37504, 35848, 3713, 27178, 49353, 2347,
        35468, 31361, 32461, 31199, 54000, 20848, 25285, 9633, 32972, 25588,
        2404, 26522, 23618, 27602, 22920, 4154, 44148, 54624, 44160, 38556,
        4101, 26434, 22830, 52572, 1409, 38468, 24448, 20551, 33775, 35752,
        1729, 20418, 39302, 25147, 2474, 35802, 22323, 32599, 48264, 35527,
        49444, 7877, 168, 36731, 20142, 38795, 2951, 48376, 36319, 30828,
        38472, 30171, 21602, 45908, 3363, 52264, 27083, 21215, 21183, 20826,
        3228, 2468, 4318, 23612, 1380, 1113, 27744, 48176, 8206, 21327, 32508,
        30151, 25144, 20247, 21364, 1384, 8658, 20234, 38917, 36794, 28288,
        23432, 26641, 3593, 36766, 30002, 23556, 45684, 21560, 21016, 38913,
        3116, 7881, 36855, 65279, 25668, 20943, 29190, 1106, 30431, 23519,
        3399, 54168, 8195, 48152, 32102, 175, 26800, 32440, 1746, 25391, 9650,
        23186, 355, 21628, 21047, 25705, 40635, 20313, 52636, 189, 1616, 32426,
        30097, 32026, 32435, 37240, 166, 45817, 26230, 27508, 54788, 21051,
        24907, 2996, 35251, 27954, 1611, 22359, 26723, 48660, 33145, 20020,
        27719, 26202, 32455, 31309, 37070, 38596, 30274, 2613, 9482, 54588,
        32722, 2735, 3732, 50669, 28789, 21672, 2596, 3275, 26411, 30417,
        20253, 20196, 7849, 27850, 36884, 20165, 38050, 22260, 1412, 26550,
        25480, 27841, 25173, 20260, 21213, 31777, 27497, 38663, 26367, 28783,
        48277, 35834, 35841, 54980, 958, 23492, 39184, 3353, 2610, 24449,
        52397, 20572, 38706, 44608, 35696, 50630, 3757, 23681, 22266, 27161,
        6042, 38647, 3776, 38522, 26790, 20185, 32456, 33287, 3019, 37444,
        2617, 23707, 23459, 2753, 8595, 20516, 25239, 48260, 27211, 32477,
        38761, 20498, 32933, 25955, 32763, 24187, 3613, 29399, 21531, 53076,
        24149, 35388, 34917, 36196, 367, 35762, 27663, 3266, 50577, 21344,
        29105, 361, 4330, 30427, 31569, 47476, 27036, 38215, 25551, 40658,
        44048, 22992, 37239, 12619, 12382, 36969, 51649, 29238, 772, 22294,
        3351, 4325, 2969, 2602, 3226, 21483, 36149, 38989, 35342, 24481, 24536,
        4156, 47140, 26432, 3100, 23553, 27810, 24746, 36008, 34013, 36935,
        31186, 4097, 4324, 38626, 3366, 3719, 33510, 38364, 20304, 48124,
        4151, 3264, 36152, 24322, 7867, 29483, 47568, 9608, 23614, 39154,
        23452, 33655, 38470, 27177, 29664, 27507, 3630, 21367, 190, 34382,
        2463, 29872, 26579, 51665, 32511, 22971, 26619, 39592, 21103, 2635,
        23613, 21478, 27442, 54540, 20202, 36611, 27996, 38381, 28310, 28286,
        32113, 32321, 25976, 20493, 3394, 179, 32097, 12412, 3761, 44620,
        950, 38138, 25343, 45784, 40670, 36879, 20912, 1394, 26893, 23653,
        2606, 28988, 21733, 25937, 47141, 21106, 1617, 21018, 44208, 51333,
        21477, 357, 2497, 36127, 23431, 247, 33050, 25774, 33303, 2492, 24444,
        2716, 1378, 51216, 3138, 1726, 3751, 22721, 31821, 48149, 24188, 22969,
        8593, 25246, 3018, 6035, 29790, 38914, 20006, 49569, 38386, 29087,
        24040, 1402, 40060, 1241, 1615, 49549, 35498, 36175, 54364, 2312,
        7851, 44428, 2604, 35242, 30343, 1187, 25176, 54664, 27888, 2672,
        28814, 53468, 26152, 24930, 378, 32932, 21381, 38544, 2364, 23566,
        25033, 22243, 38047, 31069, 20908, 27138, 26292, 22280, 32681, 34507,
        32819, 1171, 23721, 28151, 20016, 27993, 23381, 12389, 3745, 31383,
        33337, 48652, 24133, 3235, 2562, 21494, 34220, 39035, 2726, 32013,
        20419, 21809, 48320, 20816, 31359, 21220, 3942, 23457, 28526, 25324,
        20914, 32025, 21862, 30064, 20055, 3254, 44305, 21361, 26757, 35672,
        732, 26366, 36339, 185, 29066, 20005, 23546, 3372, 24109, 38627, 35611,
        51656, 54632, 3760, 4155, 710, 20276, 31680, 38236, 20497, 2336, 2588,
        24466, 3738, 20839, 46108, 1572, 2745, 3205, 53412, 32147, 50557,
        35946, 2958, 3077, 3765, 36001, 24693, 53580, 1618, 26576, 33073,
        50872, 38996, 21050, 4310, 4157, 27598, 31958, 21551, 23631, 23064,
        24310, 24039, 38646, 32858, 24656, 50808, 26087, 6036, 22025, 24618,
        20896, 35377, 20315, 26472, 23565, 49900, 303, 22815, 32451, 4332,
        50632, 1498, 20081, 12380, 36062, 4146, 26007, 50508, 20065, 20874,
        36996, 35442, 33016, 24739, 22919, 35338, 28006, 20992, 20474, 2620,
        30342, 32487, 6016, 2719, 54805, 37089, 24196, 29378, 24489, 21402,
        7865, 32039, 46160, 48373, 3530, 36317, 6040, 21066, 20652, 54872,
        25484, 20729, 25505, 39740, 36024, 20966, 31689, 20024, 297, 47336,
        39034, 31526, 32908, 29359, 40092, 2711, 32043, 2732, 23560, 24112,
        2507, 39278, 36032, 39069, 6047, 45733, 20861, 36000, 39038, 50528,
        25191, 2470, 32117, 51592, 25554, 27402, 52488, 25346, 35823, 12541,
        27798, 24576, 25645, 21024, 24351, 26263, 35613, 4122, 31481, 2331,
        26477, 21332, 26332, 3600, 48324, 44201, 4106, 38867, 22902, 3356,
        4142, 1734, 26725, 39304, 3749, 28020, 36129, 36842, 33180, 7895,
        33635, 25630, 36991, 44033, 32000, 33026, 44540, 36012, 55176, 35302,
        3906, 22679, 23544, 25463, 25311, 24093, 20159, 23447, 26463, 48520,
        47728, 3392, 38281, 52293, 21776, 7869, 34394, 28895, 3255, 9671,
        35036, 52376, 46412, 26997, 45804, 22995, 49496, 29273, 295, 36718,
        12534, 28966, 26479, 20511, 40575, 27873, 21109, 22256, 29976, 22352,
        3129, 32701, 32431, 30784, 8801, 33014, 12316, 2673, 333, 27605, 47536,
        8470, 326, 1404, 3659, 32993, 29356, 22918, 24059, 21073, 30070, 1389,
        44553, 3954, 26124, 20025, 36028, 25935, 24778, 45572, 3008, 2455,
        22609, 12492, 32260, 24464, 51613, 369, 4326, 2742, 2439, 3010, 30563,
        23506, 2460, 23792, 50892, 30142, 12478, 8730, 26262, 7857, 30436,
        39131, 3333, 32842, 36605, 39749, 36035, 3144, 32570, 3274, 37073,
        24895, 49465, 26588, 25276, 39178, 12413, 46988, 21058, 48143, 31085,
        36305, 40664, 33080, 22307, 36805, 50506, 46993, 21171, 26071, 32784,
        22818, 50728, 26082, 32884, 1709, 53804, 49696, 2625, 35914, 30561,
        23485, 21127, 29986, 27784, 23615, 54856, 40165, 38452, 28204, 23551,
        54217, 3538, 28771, 318, 3754, 32988, 23467, 3921, 3771, 31454, 25361,
        9678, 32618, 35506, 7929, 24377, 45812, 21311, 28187, 35799, 20465,
        20596, 45320, 34399, 3964, 9516, 30423, 26242, 21621, 54637, 39068,
        33288, 38520, 35387, 12421, 38024, 33150, 46021, 34429, 35504, 21191,
        26716, 34180, 26691, 54876, 52964, 24115, 35370, 35379, 29123, 28193,
        24402, 3505, 25688, 26480, 36213, 1383, 25481, 26639, 23547, 45216,
        9618, 52768, 28369, 32990, 22635, 28287, 26106, 38534, 47492, 38752,
        48155, 54200, 36882, 45813, 3385, 8592, 20210, 38542, 52286, 23526,
        37636, 49352, 23439, 33945, 50977, 27905, 47549, 1399, 52712, 45212,
        6031, 20489, 36960, 21414, 20180, 4139, 24537, 3735, 32118, 36664,
        21218, 35023, 25265, 3245, 51339, 24369, 36557, 27973, 44400, 20001,
        27794, 27193, 38538, 49437, 25244, 35793, 28595, 30719, 48177, 4150,
        20046, 21917, 24694, 20161, 1390, 21556, 38525, 4102, 23736, 34101,
        50732, 39277, 28070, 21561, 22362, 29482, 49692, 51456, 3361, 3127,
        29645, 52285, 32020, 53364, 52292, 39746, 47448, 36870, 27503, 2953,
        3239, 2721, 2371, 25439, 12359, 20961, 20129, 38911, 40481, 48288,
        47144, 22612, 31283, 45843, 20860, 21934, 32650, 39770, 53469, 24681,
        3383, 32244, 8734, 37030, 34411, 3590, 20804, 54596, 35079, 25317,
        3382, 22258, 28798, 40845, 53945, 2566, 4327, 23562, 50416, 50501,
        20598, 27427, 48513, 24748, 8804, 28872, 22338, 1722, 9507, 31455,
        3926, 38075, 39537, 1739, 54869, 20057, 30913, 26195, 3725, 2489,
        25187, 19976, 21063, 37266, 40784, 23456, 25201, 25731, 32210, 24597,
        44057, 46976, 24291, 1742, 26580, 30418, 22863, 6020, 1736, 40614,
        31478, 54256, 28784, 35226, 4144, 12407, 32553, 40736, 20648, 40065,
        20882, 12396, 45376, 47672, 23039, 23380, 20262, 21169, 21807, 22937,
        316, 28129, 36786, 30435, 36151, 31563, 50676, 33740, 35009, 20928,
        22841, 20255, 24785, 2447, 47548, 27578, 50616, 35044, 45912, 3777,
        39151, 32005, 35422, 47480, 24935, 36650, 24452, 20249, 28072, 54056,
        4118, 22278, 33437, 2328, 20405, 32536, 25138, 20439, 36067, 22351,
        20384, 26157, 2338, 2583, 23517, 3000, 2438, 3342, 25277, 9488, 28903,
        1382, 29392, 23559, 35465, 20173, 49332, 29978, 23142, 36020, 28014,
        52828, 22622, 23156, 6043, 63243, 26792, 3755, 20964, 3126, 968, 1958,
        28271, 24525, 32925, 23385, 23486, 40763, 9642, 1201, 12453, 8805,
        8776, 9478, 47566, 3620, 28363, 26564, 24499, 9553, 12307, 32047,
        38321, 22681, 31062, 3661, 37322, 39550, 8745, 44152, 38145, 26700,
        35786, 20559, 36763, 25196, 26417, 38548, 47200, 21734, 25569, 23610,
        26286, 26970, 29748, 27683, 22311, 2486, 34966, 2305, 20280, 24658,
        1403, 21162, 27818, 33109, 26834, 1688, 36973, 30952, 9617, 8231,
        49468, 2465, 37109, 1507, 8208, 28079, 35386, 25964, 38920, 52280,
        21092, 32879, 32489, 21416, 33136, 3938, 22805, 54744, 52840, 22524,
        33298, 35206, 49660, 49849, 20685, 3207, 55148, 25250, 26228, 28418,
        30422, 33459, 51208, 3520, 36681, 36134, 38972, 20272, 9576, 26364,
        38772, 48128, 52629, 20659, 46304, 35712, 26118, 2626, 2694, 29287,
        2714, 2565, 30496, 54693, 31077, 32094, 23244, 27785, 48036, 2693,
        40599, 23435, 9600, 36867, 27530, 33891, 46608, 2725, 54021, 26333,
        2586, 47088, 9578, 29572, 27931, 24754, 33033, 34907, 33104, 26753,
        9524, 23563, 3272, 21746, 9619, 33778, 28716, 3400, 26391, 2950, 25581,
        22696, 45720, 3631, 24598, 32724, 24080, 22346, 3764, 23043, 3733,
        38378, 36741, 49340, 20426, 3739, 23110, 25235, 1401, 25499, 6086,
        28508, 38936, 9552, 31890, 36190, 52992, 29980, 29942, 29240, 21009,
        32173, 30284, 27839, 3923, 3482, 52980, 21331, 21568, 38915, 21484,
        28392, 20599, 44600, 2377, 26611, 2380, 33495, 33151, 58853, 36829,
        36133, 38182, 3206, 25313, 32791, 36951, 38454, 31558, 38712, 30246,
        2591, 22727, 12685, 63688, 3908, 40636, 1109, 8704, 2355, 47581, 36186,
        24321, 24509, 32340, 33618, 24544, 46384, 1169, 48624, 4222, 40723,
        33707, 4171, 3512, 3111, 36963, 24745, 2496, 44061, 35037, 23652,
        3602, 9496, 27901, 30690, 2723, 2727, 31245, 48337, 38518, 32937,
        3535, 54140, 3514, 8811, 63242, 26059, 25954, 32943, 33832, 36341,
        3714, 1968, 33406, 25340, 3716, 2458, 12404, 25269, 20206, 50472,
        25140, 20693, 3214, 4331, 21172, 9604, 24594, 32854, 2632, 2595, 28009,
        28041, 9532, 6071, 22068, 6033, 33395, 27934, 32302, 35889, 12355,
        47792, 32974, 3767, 4244, 20975, 24125, 54889, 3515, 38083, 6038,
        27171, 25193, 3117, 28431, 20663, 33713, 26690, 25613, 6041, 20391,
        47004, 28139, 44200, 6091, 30722, 33261, 38459, 50644, 29141, 3628,
        35330, 22900, 30059, 22865, 37347, 328, 2333, 20035, 37101, 36797,
        29436, 51217, 30805, 4113, 47100, 34913, 3501, 35029, 20271, 45367,
        40479, 36575, 33673, 44192, 3742, 36880, 24382, 20134, 3146, 31348,
        50620, 28096, 37341, 3079, 27687, 2324, 26086, 38322, 35064, 3956,
        49552, 20094, 38453, 2972, 27748, 711, 28342, 3599, 33694, 27735,
        51676, 3371, 39854, 23703, 3373, 46973, 30908, 27807, 3380, 23696,
        25973, 30123, 32441, 44760, 8207, 20989, 8236, 35477, 22618, 8451,
        39039, 33489, 38155, 26460, 3367, 36104, 3936, 4329, 34588, 50756,
        20841, 3115, 3402, 9572, 22934, 28809, 33455, 34425, 29827, 25514,
        9312, 44508, 40836, 24518, 37492, 29554, 52509, 34214, 28818, 27946,
        6021, 31206, 30130, 28511, 8319, 39166, 13217, 46028, 20223, 2582,
        2733, 23019, 20940, 33126, 26694, 2459, 29028, 3335, 26781, 23233,
        36857, 26575, 36745, 33836, 28404, 20044, 38642, 32966, 9565, 25106,
        36300, 33804, 38428, 27583, 54609, 28034, 27877, 2477, 32963, 9571,
        3358, 32209, 30636, 26538, 31908, 34385, 3722, 28748, 44204, 33576,
        35731, 29618, 51096, 26216, 3209, 25299, 2703, 38108, 6072, 3789,
        9313, 23068, 27396, 35264, 3078, 25429, 4239, 55092, 32442, 9557,
        27542, 24324, 29245, 47561, 25381, 9563, 38360, 32531, 26441, 2434,
        26628, 20056, 37857, 9564, 3665, 25331, 4017, 34389, 12297, 20957,
        25298, 52384, 47553, 25943, 3523, 36367, 48276, 21097, 29916, 32626,
        3598, 22633, 25308, 3540, 28176, 31807, 28845, 25026, 52649, 33747,
        51313, 47049, 28248, 3334, 21330, 3769, 36843, 1962, 38485, 47803,
        1657, 26194, 3962, 36742, 26172, 23588, 30127, 38177, 36214, 32959,
        32882, 20982, 36992, 40802, 20179, 27424, 20018, 28450, 25932, 24674,
        27745, 9475, 20740, 29627, 48292, 33146, 3928, 32764, 36941, 1927,
        32318, 26421, 35722, 35010, 3939, 21193, 44264, 26525, 22296, 3107,
        39569, 39658, 2637, 22615, 19992, 28171, 37034, 31684, 39575, 2454,
        26609, 26825, 24736, 9559, 6081, 32317, 33529, 20126, 24223, 21365,
        31726, 50880, 25130, 21247, 35041, 33293, 22868, 25975, 24422, 38929,
        8242, 24500, 32439, 4120, 2715, 34218, 32291, 28330, 27298, 3720,
        25671, 1509, 36933, 38928, 12296, 4757, 37291, 26132, 51105, 289,
        37228, 24062, 32420, 3302, 25233, 50520, 35261, 9569, 6076, 27713,
        21943, 27155, 35033, 37428, 8976, 24163, 12530, 25142, 26049, 12306,
        9580, 24069, 36194, 24467, 32958, 54861, 54952, 23531, 45712, 22369,
        21368, 49325, 291, 26092, 9654, 25286, 27284, 32645, 8706, 32224,
        21170, 36981, 36965, 39376, 24189, 9508, 7923, 24140, 2710, 30416,
        26705, 20420, 37969, 4160, 53216, 33777, 47161, 35657, 32153, 25014,
        26119, 28860, 25424, 36986, 30244, 2334, 9568, 3780, 28378, 1613,
        26001, 24478, 9562, 8729, 4114, 28902, 2696, 23542, 38149, 21654,
        9495, 31049, 49836, 51600, 34678, 31895, 27489, 30086, 21696, 54844,
        49800, 9567, 21682, 30473, 9661, 50688, 27627, 23396, 9561, 21427,
        21443, 3601, 21570, 48380, 29943, 29467, 54728, 27475, 36321, 34349,
        3779, 27891, 31896, 48736, 31281, 8194, 3237, 1960, 22218, 27882,
        24323, 34183, 33538, 40654, 2451, 6075, 27875, 36724, 32928, 30862,
        30555, 3853, 36393, 44275, 36235, 33900, 21576, 36771, 2329, 24742,
        33108, 22374, 21514, 29595, 25402, 9574, 38684, 28797, 20937, 23476,
        38515, 36801, 32433, 26165, 3123, 32472, 28580, 33256, 50613, 39511,
        51316, 29038, 24490, 34269, 12308, 1964, 30899, 24796, 24033, 9577,
        29239, 36180, 12361, 20818, 25644, 24708, 23507, 23529, 45576, 3517,
        775, 12309, 12640, 21741, 26361, 44480, 23731, 22985, 24551, 36291,
        29926, 2323, 23576, 8359, 23449, 25720, 8718, 50529, 28611, 20237,
        30196, 2475, 6082, 44257, 22922, 2731, 35258, 22982, 23389, 23195,
        21857, 9555, 36776, 36328, 25136, 20141, 2754, 37057, 9484, 25670,
        34081, 34923, 28781, 32736, 38517, 24815, 8992, 22475, 2437, 24713,
        26885, 53080, 1922, 24344, 50980, 30879, 35859, 49844, 30021, 47592,
        39048, 35825, 47101, 31570, 6044, 30865, 23574, 36192, 2603, 33714,
        33976, 9558, 2962, 36920, 24904, 8993, 51460, 3086, 20387, 2471, 1683,
        33075, 9575, 20239, 9566, 22766, 21223, 48393, 36777, 8721, 3503,
        34746, 33738, 9651, 23490, 35492, 3243, 26093, 30887, 7905, 4147,
        20538, 9825, 25200, 2441, 23305, 7927, 24573, 29157, 26187, 38519,
        23888, 22443, 20607, 47016, 26612, 6050, 9570, 29017, 9612, 36132,
        36182, 25195, 9616, 9556, 47533, 21202, 267, 37707, 47582, 32954,
        24118, 27836, 9579, 21520, 33251, 51901, 27987, 24190, 2567, 30140,
        21098, 35480, 2307, 3508, 6026, 26088, 24735, 2593, 9573, 27867, 36655,
        38971, 38613, 32918, 54801, 8978, 26020, 1393, 26827, 24185, 29923,
        12357, 39336, 31379, 53588, 28422, 37749, 22661, 26012, 1203, 25369,
        35351, 39514, 31911, 21305, 731, 3081, 20124, 1672, 22402, 20820,
        4335, 26627, 2406, 28856, 24259, 51256, 44537, 20296, 3758, 35488,
        8747, 32416, 40643, 30408, 53596, 51061, 38160, 12622, 8233, 8810,
        29454, 8710, 32899, 22859, 44068, 23035, 28059, 32257, 51328, 30406,
        25830, 22519, 37002, 46112, 22675, 29747, 32202, 39063, 8201, 22857,
        32938, 45436, 47673, 34503, 50773, 47800, 25198, 39536, 2487, 25159,
        35980, 48268, 29468, 36784, 37111, 20542, 54060, 21966, 53448, 23611,
        1386, 24609, 39128, 25366, 2739, 49905, 2568, 39542, 52880, 3778,
        9560, 47017, 25475, 12444, 23815, 21908, 3222, 25806, 20096, 729,
        33328, 28388, 36774, 34562, 24171, 37628, 31389, 50420, 39023, 25302,
        36394, 1415, 22730, 21931, 1411, 28092, 38599, 7859, 33883, 31282,
        50920, 32716, 35832, 38686, 24910, 48296, 54253, 38640, 33311, 8214,
        6039, 33039, 22378, 47116, 54812, 21083, 49912, 35806, 38560, 31946,
        3267, 31957, 9314, 32768, 52268, 54925, 8202, 26842, 24265, 49492,
        8561, 46377, 35433, 1413, 20801, 20625, 49910, 8235, 32982, 24357,
        36154, 35576, 26799, 30462, 53441, 271, 26438, 24443, 9554, 32822,
        25080, 52272, 45453, 6084, 39438, 54045, 35380, 22528, 311, 21767,
        36637, 38109, 2743, 22654, 25300, 32437, 34928, 25169, 20047, 35856,
        30990, 4725, 38506, 2469, 20973, 50628, 37257, 21544, 40527, 24724,
        30742, 24070, 25496, 24330, 32893, 46121, 21566, 25758, 38592, 29151,
        25259, 22771, 26247, 36713, 728, 36093, 8712, 6023, 34909, 38901,
        36712, 28415, 20208, 22958, 6017, 29611, 3304, 40511, 31232, 37679,
        38400, 33289, 1748, 54413, 35426, 31292, 26647, 51025, 4245, 21351,
        6030, 20932, 28504, 45944, 52395, 24950, 39015, 47001, 31918, 2534,
        53584, 22561, 2407, 23004, 20976, 32602, 26894, 29246, 38152, 25958,
        49689, 26447, 37666, 3768, 2408, 33889, 27133, 47676, 45328, 32874,
        33167, 31661, 53444, 1777, 31048, 50883, 36493, 38512, 28900, 33633,
        1632, 24505, 21861, 23725, 23229, 27738, 22403, 30165, 47111, 12643,
        40718, 28846, 38401, 51340, 22334, 3337, 27893, 2605, 25166, 47579,
        44040, 37995, 38393, 40372, 39364, 27972, 63731, 24524, 50937, 51697,
        37011, 21350, 50837, 21091, 26607, 51137, 32483, 21563, 31452, 28085,
        30896, 53433, 3545, 26257, 3773, 22993, 1563, 54984, 27450, 50526,
        31609, 33452, 27852, 34174, 25206, 29808, 28687, 23047, 33294, 40483,
        20661, 34972, 23528, 32396, 20658, 22842, 33678, 1769, 24942, 28938,
        20667, 20523, 49901, 38617, 23777, 28107, 36891, 52265, 23624, 21449,
        54504, 50743, 23849, 3524, 23527, 44867, 35851, 29788, 33292, 23072,
        21780, 1717, 51596, 35930, 2707, 3924, 24266, 26704, 24840, 20817,
        21674, 32541, 25320, 31298, 4127, 28866, 35440, 27233, 3495, 27974,
        22043, 49772, 25539, 23159, 33796, 33988, 24288, 24680, 20918, 25312,
        23002, 8743, 3647, 24193, 27779, 30290, 32186, 44596, 4170, 4018,
        32466, 40831, 20329, 35676, 1959, 27844, 12310, 23660, 23581, 51424,
        22534, 35347, 38577, 24358, 40634, 31258, 20806, 24944, 45149, 47540,
        3395, 52968, 1633, 22616, 34989, 4223, 32469, 24685, 27185, 28382,
        39547, 51104, 12311, 35868, 25562, 26517, 20052, 27589, 12410, 8764,
        39366, 52432, 26224, 33831, 63246, 33469, 20736, 3546, 29422, 19985,
        3663, 3094, 3763, 37051, 21195, 25040, 24931, 32922, 36924, 29376,
        36898, 37559, 38563, 31150, 34253, 32445, 28113, 36628, 26685, 33485,
        28843, 36785, 36143, 20399, 21574, 20002, 1929, 24808, 2467, 25799,
        6078, 32190, 1395, 38739, 3218, 29401, 21460, 38666, 50516, 8229,
        36212, 27965, 30526, 23273, 38568, 25885, 23391, 32490, 28192, 36808,
        1612, 33922, 28357, 6018, 20341, 32501, 733, 6032, 32023, 23608, 36831,
        4637, 2569, 50984, 23330, 21208, 33805, 9835, 20175, 26742, 45336,
        52860, 3484, 51453, 23884, 9792, 9794, 31351, 39759, 22435, 24676,
        40169, 31992, 1923, 3666, 45769, 28024, 24432, 27465, 25220, 1707,
        25802, 33178, 30044, 970, 22915, 24917, 44404, 45815, 44984, 47029,
        20011, 27511, 36139, 4653, 36156, 24429, 28142, 3664, 45440, 30168,
        26689, 34109, 52769, 25764, 38499, 54756, 36629, 34945, 40180, 22570,
        35997, 29425, 2695, 33274, 29301, 29421, 33446, 53011, 48716, 34092,
        33683, 38307, 34030, 38654, 9674, 28057, 22079, 26801, 44049, 21897,
        30861, 24339, 45909, 39292, 29081, 38570, 26097, 29417, 22467, 9426,
        25448, 21890, 53360, 46319, 21346, 34900, 28393, 50725, 40560, 28331,
        29518, 25342, 3740, 53560, 50772, 50521, 24367, 20767, 1685, 34430,
        21340, 36424, 52789, 35698, 36744, 20941, 26197, 38035, 6025, 39164,
        2999, 8727, 29237, 25996, 36893, 54400, 21385, 32156, 23067, 63728,
        32294, 54260, 32368, 24801, 32434, 33993, 20911, 44417, 20285, 36362,
        34277, 8719, 32705, 36649, 2536, 4661, 22882, 29756, 21525, 24616,
        27472, 21155, 37255, 24677, 28516, 34924, 48388, 54016, 2535, 29228,
        45458, 28548, 25273, 36974, 29539, 39554, 37941, 30827, 51704, 55141,
        35947, 20597, 20534, 25135, 3536, 27585, 22739, 4098, 33931, 45180,
        25377, 39062, 24085, 20923, 37782, 21280, 34384, 20613, 25243, 52392};
     System.arraycopy(temp, 0, chars, 0, temp.length);
   }
   private static void populateChars2() {
     int[] temp = new int[] {
        49472, 54732, 38391, 51669, 49556, 20266, 46024, 32617, 21898, 36930,
        36600, 25746, 24858, 38620, 36015, 9668, 33550, 23518, 26528, 36562,
        50685, 30871, 24311, 32789, 55192, 4148, 4840, 45772, 2652, 47168,
        25407, 1926, 50780, 49380, 4621, 35880, 35582, 36066, 21246, 54392,
        31844, 1690, 3109, 4224, 29408, 9315, 22916, 47215, 54536, 20670,
        3365, 22287, 23014, 32592, 30789, 64257, 27922, 22888, 37528, 37066,
        30079, 32191, 4632, 25818, 30033, 29738, 38728, 46989, 24034, 53952,
        1784, 63743, 36203, 2974, 27703, 47456, 29544, 23617, 30095, 46301,
        25197, 26820, 54036, 33144, 24764, 25242, 1928, 26280, 27675, 1660,
        50536, 26539, 730, 28639, 33541, 4768, 34311, 19993, 28316, 37912,
        36172, 50648, 37237, 3001, 1211, 27688, 25776, 30683, 50024, 28448,
        45392, 32518, 4813, 2959, 21497, 45803, 22904, 46244, 34886, 32564,
        34809, 27506, 27754, 3276, 52236, 4704, 50684, 3350, 33970, 28525,
        8260, 26352, 28381, 1414, 20995, 53084, 24841, 23947, 48712, 53948,
        26114, 53461, 26898, 2599, 33382, 48317, 3346, 50040, 35803, 29281,
        54841, 8800, 39540, 1634, 25042, 21472, 27631, 25856, 29282, 29226,
        1665, 21187, 3303, 21163, 21796, 20786, 25304, 3232, 25745, 8243,
        20513, 12542, 28180, 25582, 4616, 21703, 28322, 32465, 50952, 9758,
        21400, 38125, 32930, 50997, 349, 2697, 4333, 54785, 34560, 38797,
        46307, 24343, 20390, 36171, 54589, 50517, 39578, 12291, 38397, 4773,
        32085, 38742, 20984, 1934, 36002, 29004, 37238, 26420, 52896, 30591,
        1673, 3746, 40493, 24055, 36910, 33218, 24825, 36161, 39588, 6034,
        52972, 21371, 24088, 26543, 38290, 24043, 19995, 20054, 38062, 37670,
        21034, 47589, 50532, 29369, 48279, 49832, 21681, 44512, 33030, 30067,
        33433, 38669, 21273, 25384, 20111, 36158, 33821, 20467, 51608, 22894,
        6048, 23194, 32330, 21535, 9827, 21693, 38136, 29492, 26179, 34676,
        21676, 39442, 29642, 26039, 24688, 6087, 28655, 8234, 25260, 4845,
        48744, 37198, 45264, 27832, 26127, 49244, 31056, 28500, 4119, 38464,
        37129, 2373, 31067, 45459, 21078, 28189, 39729, 30137, 20305, 54047,
        21683, 12295, 30450, 3734, 33235, 51069, 36007, 47605, 8756, 26635,
        28044, 22372, 31579, 38041, 51276, 28169, 63729, 3539, 47788, 63730,
        33351, 25836, 23403, 32670, 25417, 2717, 49397, 52237, 8739, 21123,
        23828, 24217, 21388, 32960, 32737, 29128, 46496, 47160, 24789, 32011,
        40863, 35961, 25010, 49512, 3510, 25380, 26151, 20240, 27733, 32160,
        24604, 20167, 20605, 24700, 20677, 32114, 265, 29508, 27819, 3937,
        47353, 33624, 39282, 24161, 33152, 48400, 32568, 3986, 34542, 46523,
        24417, 49604, 26643, 21688, 3461, 20365, 28514, 36874, 4709, 21523,
        31966, 48731, 38420, 3669, 1776, 45285, 3139, 37122, 21129, 29229,
        7861, 27498, 2791, 24868, 28147, 25447, 37549, 23071, 39041, 36752,
        20136, 45789, 36795, 53416, 38886, 30643, 44260, 54057, 30399, 22963,
        35850, 3208, 2575, 33909, 33980, 38203, 3215, 33192, 38665, 22949,
        37806, 20553, 4149, 22353, 45797, 36138, 285, 33540, 26729, 39281,
        20282, 30697, 35186, 25153, 50865, 20711, 24501, 28417, 36059, 22533,
        3087, 54792, 32923, 31515, 21049, 38614, 3930, 50656, 33181, 33519,
        21093, 8560, 46500, 25088, 21912, 36887, 4133, 28911, 1779, 3905,
        25292, 3080, 33086, 37233, 25788, 22942, 32499, 21481, 30385, 1758,
        25335, 33290, 36735, 1932, 47952, 6096, 12615, 2314, 35987, 8362,
        25793, 36011, 52825, 24833, 47113, 29312, 24962, 31096, 20698, 22602,
        54224, 31109, 28792, 35207, 27695, 33426, 45000, 31520, 21855, 22132,
        40548, 33606, 37204, 44844, 36758, 22816, 33034, 22285, 27224, 31528,
        4720, 48157, 27054, 53581, 46096, 22890, 51320, 31291, 22941, 39378,
        22952, 52492, 35475, 32566, 53328, 35598, 3904, 26954, 26217, 21248,
        28921, 32752, 29006, 30897, 51092, 25998, 39567, 22774, 25970, 22040,
        4232, 30460, 64258, 23541, 23477, 28810, 2960, 27225, 33995, 35776,
        21555, 44845, 31909, 36923, 22586, 33032, 48164, 8467, 45397, 32709,
        4752, 30776, 32380, 9664, 31712, 21705, 20028, 1635, 24908, 10146,
        30770, 4125, 23451, 1931, 3934, 23020, 30967, 22368, 3782, 33018,
        27249, 24307, 3224, 50641, 33139, 44648, 21410, 3804, 28907, 35772,
        3662, 8711, 53556, 47680, 4843, 32233, 36330, 1920, 3910, 28879, 35920,
        3148, 25096, 24807, 40607, 21038, 22122, 35998, 12641, 37772, 36530,
        1778, 53748, 38695, 27815, 3667, 54848, 52632, 40441, 49789, 28183,
        39173, 28291, 30162, 33721, 35408, 21895, 20022, 40517, 40335, 2412,
        45433, 32331, 22581, 28212, 20857, 26976, 21534, 22075, 28317, 38553,
        40667, 25674, 30959, 34442, 22564, 37045, 46076, 27778, 33098, 25309,
        38053, 31363, 4755, 21999, 4103, 35784, 33905, 45347, 2712, 12445,
        36031, 32363, 53456, 31209, 2790, 47551, 47805, 25797, 54784, 53224,
        34028, 36016, 24428, 3548, 35885, 33131, 33392, 20137, 28976, 20457,
        1961, 54268, 20007, 38748, 46392, 4336, 20985, 32961, 39165, 44054,
        23466, 47148, 36720, 2498, 54172, 1936, 26531, 9316, 6077, 20828,
        26775, 47704, 33419, 33453, 48064, 6080, 38476, 33334, 37231, 38208,
        25513, 12446, 33733, 45927, 8562, 22839, 40509, 3772, 47751, 30703,
        27387, 32027, 22317, 38639, 22365, 22247, 52832, 31302, 24245, 28170,
        21321, 33031, 29814, 34593, 34468, 1686, 25172, 32610, 36386, 21860,
        2464, 37259, 20521, 28577, 51396, 21710, 53020, 38025, 20725, 21329,
        54001, 9672, 48165, 20754, 365, 49104, 38156, 51677, 54645, 27760,
        30733, 25334, 2963, 36877, 21467, 1641, 52845, 38343, 24392, 29298,
        32544, 47217, 29138, 38593, 3347, 34299, 2409, 4161, 8857, 33564,
        37041, 37509, 38383, 10084, 23219, 39662, 30174, 40232, 24035, 36126,
        1637, 44050, 22291, 39449, 50741, 3343, 36538, 33769, 40179, 22082,
        31548, 30185, 26847, 9763, 28460, 37320, 20392, 39556, 24222, 22925,
        26623, 30522, 31237, 20901, 24248, 30922, 25436, 38085, 47204, 24717,
        23609, 2411, 21375, 38057, 23016, 46888, 24218, 30433, 25615, 23515,
        25379, 8629, 49704, 35878, 33216, 35463, 12599, 28251, 36852, 45225,
        44340, 25022, 20098, 50473, 21843, 53372, 2584, 54648, 46168, 25684,
        29791, 28641, 9702, 29705, 25114, 2415, 25238, 32177, 20062, 25079,
        1933, 30126, 2720, 36195, 34203, 1669, 33579, 12443, 33735, 21650,
        3747, 48197, 30928, 23472, 30294, 31805, 63736, 32110, 1681, 54764,
        31967, 23663, 34432, 2878, 21754, 3352, 25594, 36042, 25993, 26000,
        47352, 29993, 47021, 22196, 46504, 33795, 39894, 21465, 8806, 1640,
        25545, 4319, 23648, 29563, 23534, 48729, 31929, 28493, 29503, 38587,
        37489, 37340, 8210, 34583, 49452, 28103, 37474, 20632, 4848, 50885,
        1373, 39047, 2636, 35738, 22777, 28799, 30849, 22887, 34217, 21679,
        33203, 20254, 21557, 21295, 33147, 22092, 52524, 3653, 51593, 33184,
        38902, 25812, 27146, 50631, 53457, 4162, 1636, 32624, 31623, 1706,
        47691, 48709, 4635, 28100, 912, 31165, 25387, 36556, 45228, 48537,
        33225, 31364, 8807, 59115, 26028, 52981, 31883, 39635, 29242, 1741,
        27682, 26646, 32283, 31469, 27792, 27572, 1930, 37664, 53097, 22756,
        34893, 22217, 32016, 25423, 51232, 25001, 24278, 32829, 12636, 33593,
        26283, 34957, 20872, 38392, 37218, 47280, 21643, 22840, 55120, 47085,
        21397, 21254, 45929, 59017, 1639, 45240, 2607, 22549, 49453, 21947,
        24799, 6085, 24359, 2597, 22846, 50633, 24999, 25654, 54008, 40486,
        39686, 9080, 31293, 6037, 35140, 4853, 25199, 4877, 48150, 37048,
        32903, 26771, 21214, 48757, 54635, 30813, 36452, 20431, 31487, 23596,
        2543, 3766, 30571, 2321, 25405, 30008, 25605, 35695, 21000, 25161,
        32462, 40665, 2755, 28195, 1638, 45209, 32597, 39192, 28528, 51667,
        55064, 4619, 4872, 26586, 6083, 26829, 37230, 21149, 32896, 53092,
        10003, 20945, 48121, 27331, 52377, 29432, 2410, 48420, 46907, 37507,
        314, 1924, 3668, 37467, 40629, 34521, 36804, 53916, 3227, 45828, 32051,
        8834, 1043333, 28572, 35845, 4186, 24041, 38662, 981, 22434, 27575,
        47576, 52644, 22484, 39171, 32299, 37676, 23633, 49500, 4776, 38275,
        33102, 29863, 26021, 34523, 29734, 25778, 4175, 45230, 51081, 21485,
        22869, 44161, 23830, 24427, 34223, 30036, 4134, 20979, 38622, 3984,
        37323, 36926, 46832, 38931, 8209, 2952, 29640, 27899, 4733, 3415,
        33899, 3305, 31204, 6089, 34509, 20322, 48127, 30050, 49368, 26837,
        40680, 39472, 3805, 28073, 1305, 32227, 25325, 32827, 27679, 39295,
        38991, 44732, 33436, 3216, 34935, 54592, 27985, 22576, 35065, 35948,
        3920, 27085, 30338, 1417, 44052, 52489, 38048, 24426, 44628, 54144,
        22750, 28790, 20864, 26869, 23604, 2537, 51229, 37165, 23094, 39072,
        51468, 3925, 21769, 3499, 28888, 34433, 23493, 25666, 29076, 24809,
        27900, 39286, 2539, 54017, 25472, 1468, 26310, 49341, 28136, 39129,
        34196, 20621, 34315, 40637, 28487, 38054, 35854, 35449, 23561, 35875,
        37039, 36106, 20314, 39551, 12533, 33948, 30447, 32673, 31391, 12386,
        4723, 37723, 38829, 26365, 4019, 30535, 27131, 3219, 51079, 1921,
        20177, 26198, 20323, 27694, 45257, 9824, 341, 38567, 36051, 54156,
        25296, 12482, 359, 40594, 2499, 35617, 21564, 32781, 26803, 63250,
        4648, 51236, 33806, 26025, 36084, 8600, 31177, 34395, 36225, 4651,
        34074, 53668, 46405, 23113, 21756, 23532, 52252, 50432, 23234, 2864,
        4656, 29279, 37247, 26122, 29477, 27463, 35853, 9487, 32180, 36176,
        31108, 49399, 21486, 51564, 27766, 33008, 23835, 30631, 20900, 49334,
        46272, 31166, 22604, 20522, 40613, 21290, 8901, 49240, 20955, 37284,
        37049, 27197, 25995, 26388, 34067, 45196, 49933, 26632, 51664, 32058,
        21059, 33465, 2760, 27667, 21927, 26805, 26530, 47931, 30164, 37026,
        27308, 20360, 27495, 31373, 28954, 20446, 55121, 38982, 2457, 12963,
        4808, 29241, 21647, 34121, 35088, 3090, 30358, 37112, 47213, 20977,
        22030, 65104, 52983, 33492, 4707, 24936, 21633, 2538, 39423, 31783,
        20050, 33841, 2794, 44272, 21914, 24051, 28389, 21764, 26278, 33545,
        28905, 26454, 2413, 53420, 31072, 2795, 29802, 36276, 26943, 33833,
        28068, 32902, 32239, 35558, 29033, 37009, 33029, 8741, 36767, 30889,
        26329, 49100, 38389, 45448, 4781, 21936, 12430, 1207, 29509, 3458,
        27838, 37085, 45924, 30270, 44852, 33296, 27512, 38582, 36137, 61984,
        21980, 50619, 52856, 21577, 38533, 45132, 54804, 22013, 22931, 33729,
        1042487, 24420, 22047, 29840, 1185, 22781, 34249, 38055, 39076, 2462,
        32428, 12849, 34802, 38604, 2433, 35320, 2837, 32333, 39745, 36145,
        3935, 9742, 10047, 34584, 52393, 26311, 3490, 32362, 27726, 26797,
        2792, 30116, 21133, 47708, 9499, 24208, 29632, 34453, 39348, 26708,
        31545, 1785, 29100, 33674, 3307, 21281, 33589, 4613, 38678, 35223,
        21930, 29022, 9317, 45128, 31735, 28467, 33639, 25386, 3096, 39037,
        23622, 12596, 40655, 48180, 30031, 2414, 24282, 37832, 30917, 25749,
        38043, 2893, 29995, 40778, 22986, 36481, 27741, 22645, 33046, 25318,
        30355, 3497, 33631, 4238, 29560, 55137, 47329, 22496, 8744, 3336,
        28844, 45516, 2320, 37686, 33067, 30494, 49483, 55124, 39717, 26963,
        28689, 51247, 51480, 31397, 36168, 29781, 28657, 28891, 3999, 47092,
        34164, 6073, 1463, 52270, 2589, 1464, 21880, 3913, 34722, 2579, 39791,
        45140, 53665, 8746, 38619, 23784, 25597, 35584, 27728, 23521, 37221,
        33659, 1374, 46980, 45256, 27060, 21505, 29956, 2542, 30702, 28760,
        21237, 1524, 20238, 2796, 539, 23706, 36064, 2691, 38180, 27896, 24661,
        2510, 21673, 20506, 38997, 31353, 25327, 25438, 3473, 25375, 22350,
        22862, 40660, 19998, 26592, 31446, 1251, 36711, 23803, 28796, 1177,
        35586, 25487, 36953, 44316, 37304, 30192, 31377, 3909, 35122, 53681,
        8660, 39748, 21727, 35090, 34638, 21515, 27264, 45349, 4234, 10065,
        25874, 27526, 30699, 21610, 2353, 48764, 20008, 47609, 8758, 27012,
        20183, 33307, 50670, 22234, 28179, 24871, 38146, 9491, 9699, 54004,
        21585, 1781, 45210, 36983, 38930, 36159, 9698, 37145, 48141, 31398,
        35028, 31491, 40077, 9644, 1460, 27712, 21380, 29071, 4240, 28949,
        31161, 20051, 20871, 8757, 38449, 1966, 33620, 27975, 33398, 9480,
        31581, 39056, 46497, 36420, 4111, 40801, 3306, 21250, 3671, 35359,
        30860, 31407, 29306, 44636, 45124, 29792, 38583, 22366, 35609, 9582,
        32495, 24794, 21742, 25329, 19984, 36101, 28507, 47337, 35829, 2954,
        3670, 31319, 20166, 46385, 34224, 3642, 3525, 22880, 1043296, 34281,
        30072, 31459, 29787, 3672, 29053, 21589, 9788, 8786, 46120, 28629,
        27014, 34398, 59009, 33125, 32728, 31337, 46181, 331, 47896, 27204,
        39180, 51021, 22151, 36245, 33329, 20846, 31869, 21137, 40251, 26999,
        9483, 38175, 1041703, 29042, 50584, 2540, 25765, 26023, 26848, 30520,
        20336, 1782, 1780, 48145, 27803, 31229, 3452, 38416, 54204, 28210,
        55184, 32478, 47019, 28372, 31095, 50424, 34126, 31601, 30219, 2887,
        36838, 24758, 30529, 9786, 30505, 23241, 3521, 27777, 26791, 6090,
        21815, 29380, 25844, 59114, 21888, 32986, 23081, 6088, 24290, 31964,
        33368, 37336, 40858, 28472, 38753, 23649, 48316, 20518, 45916, 31378,
        27813, 35070, 48960, 31402, 36090, 28263, 38887, 38501, 23994, 48533,
        1456, 28919, 24101, 51536, 4677, 37275, 36468, 22066, 21653, 9547,
        25950, 22769, 2879, 23682, 30221, 20398, 39042, 44618, 32438, 31903,
        55036, 33099, 30113, 32512, 37210, 47131, 34219, 27953, 38262, 31162,
        12828, 26928, 29831, 22107, 33286, 24608, 3308, 37413, 28466, 34850,
        9700, 45940, 28065, 2405, 9477, 15142, 9836, 309, 37232, 50476, 45324,
        2587, 2541, 21700, 31914, 38446, 30606, 57348, 22404, 28552, 1523,
        25504, 21185, 36466, 50812, 3344, 20463, 2456, 45776, 35766, 3088,
        4779, 40595, 38082, 22687, 12485, 36077, 31925, 37756, 29712, 61472,
        28346, 3673, 22593, 6092, 34157, 26274, 30596, 59131, 40568, 31840,
        537, 55180, 3309, 48261, 39381, 33276, 25414, 4115, 23045, 23044,
        30691, 38209, 25032, 36249, 26279, 29211, 53300, 35424, 30651, 25170,
        29786, 38660, 35363, 37226, 38907, 2592, 29590, 52884, 32865, 1700,
        36198, 1965, 20355, 9318, 47156, 31143, 28149, 46609, 34434, 4941,
        38230, 33559, 39274, 27579, 38046, 32070, 31296, 47157, 34633, 46164,
        28478, 3234, 4196, 28003, 4771, 33009, 3091, 3858, 32920, 21325, 29746,
        25771, 26464, 22114, 29254, 24103, 3549, 4225, 23591, 21736, 54760,
        30590, 4226, 4829, 21899, 3454, 32504, 38078, 21737, 21992, 12609,
        6112, 25441, 1042486, 28558, 31339, 30637, 3106, 38191, 35059, 8563,
        36783, 2764, 1940, 27837, 47716, 32680, 28122, 22124, 35269, 45580,
        28851, 39881, 34107, 30585, 9581, 3504, 1783, 33592, 2856, 23087,
        52897, 33445, 24977, 29614, 22065, 30129, 3587, 28373, 53489, 8736,
        5222, 36958, 21104, 33530, 21128, 3940, 4672, 21596, 23077, 30251,
        25234, 20045, 3919, 46263, 50694, 21713, 4634, 32735, 30710, 38713,
        46629, 30634, 26629, 39539, 35535, 35167, 2570, 6024, 63735, 47693,
        28822, 23776, 25622, 48656, 24974, 45229, 20904, 38289, 22383, 8735,
        36255, 12553, 21941, 47925, 21235, 3404, 48391, 32831, 23421, 21987,
        4004, 37613, 46992, 32907, 26289, 39822, 38605, 24162, 38067, 45734,
        29634, 26342, 25074, 65103, 32548, 28435, 24013, 59066, 36988, 31811,
        29750, 20887, 33760, 39558, 30307, 36527, 33670, 28953, 29730, 24465,
        32517, 8232, 12613, 59100, 44285, 31672, 26577, 22367, 29733, 58566,
        38013, 26313, 4901, 20332, 21584, 24867, 30566, 24730, 23679, 26429,
        21932, 30802, 59162, 59130, 23344, 28414, 1939, 21359, 3596, 54196,
        45588, 26207, 33802, 50967, 3675, 9701, 51222, 38221, 2860, 5509,
        6022, 4221, 33643, 44176, 33285, 39045, 38181, 8759, 40104, 9787,
        6093, 9655, 28937, 27167, 31499, 49899, 47956, 24246, 55128, 47212,
        24803, 38539, 2793, 20502, 25619, 48044, 22057, 59120, 31637, 12529,
        3589, 4158, 30414, 45252, 23267, 26133, 9584, 33012, 2946, 27986,
        24853, 47120, 3310, 6103, 31716, 1041647, 53132, 9685, 9602, 4851,
        35060, 48848, 35607, 32838, 40158, 27048, 49916, 27788, 48389, 38379,
        50912, 24315, 45937, 31636, 31809, 32509, 28670, 1808, 38746, 1041734,
        38588, 32251, 12294, 53272, 32834, 37108, 29749, 32532, 50136, 37321,
        24328, 34656, 32121, 44220, 30115, 21891, 28925, 30300, 50715, 51684,
        3872, 36757, 57344, 31961, 65109, 53188, 32474, 46027, 29649, 37351,
        4659, 44145, 25703, 35809, 34321, 32453, 38394, 21822, 27029, 35674,
        44988, 3230, 39899, 28698, 20448, 2872, 312, 24005, 31406, 20873,
        29522, 39269, 35566, 30741, 20130, 34444, 21766, 51260, 38968, 35513,
        7952, 28181, 2852, 51082, 21777, 29309, 27814, 27544, 28186, 20308,
        32948, 25305, 51117, 31047, 31040, 36286, 49920, 38471, 30544, 2504,
        30207, 53812, 25578, 32406, 49632, 34122, 22418, 8054, 4163, 33308,
        1043286, 39548, 50745, 25203, 26840, 28359, 44992, 24976, 8835, 7936,
        44788, 45244, 38475, 28218, 26462, 53413, 12593, 47585, 40132, 23394,
        51687, 24646, 33300, 35565, 21348, 4623, 36764, 2576, 40434, 25850,
        23630, 24319, 30732, 4609, 33043, 4936, 29060, 59161, 25098, 45787,
        36142, 39493, 8228, 22930, 23724, 1013, 26241, 21242, 44415, 4811,
        49847, 9319, 21632, 23013, 34649, 58979, 21076, 31041, 22697, 24623,
        900, 30428, 31401, 38414, 34662, 47736, 49455, 52040, 29234, 2880,
        3453, 52452, 8481, 26214, 30094, 25947, 39608, 13213, 30977, 22204,
        1937, 46524, 8599, 24409, 48140, 36454, 38536, 20814, 50505, 28153,
        59091, 25443, 22179, 39290, 27516, 28865, 2551, 26355, 23386, 52196,
        53808, 32494, 27088, 4896, 38064, 9756, 2862, 35641, 24275, 49744,
        36144, 37758, 25031, 9320, 33302, 29822, 27243, 38225, 29481, 4169,
        23913, 57474, 32687, 33275, 22022, 23388, 35715, 30610, 3743, 50560,
        59098, 30315, 1925, 21957, 25524, 31264, 46364, 44263, 36264, 24287,
        24653, 38255, 31311, 28234, 45331, 46161, 9737, 22039, 25884, 26786,
        6027, 26874, 20133, 35438, 37196, 34875, 3311, 32203, 25287, 31001,
        20939, 35773, 32608, 54736, 21519, 770, 36174, 28609, 2873, 9635,
        9122, 32033, 462, 4250, 8361, 25458, 3463, 39912, 2722, 48596, 35876,
        32957, 52740, 22778, 36943, 27774, 29471, 32880, 2947, 4168, 971,
        20432, 29557, 22438, 30420, 21971, 51094, 28037, 34914, 52656, 3522,
        4824, 25722, 4962, 10070, 20885, 51086, 4617, 47105, 32629, 4650,
        59011, 31607, 24458, 22764, 45805, 27194, 9605, 40140, 29277, 8765,
        61623, 30439, 51210, 33499, 21474, 51075, 23697, 24439, 3465, 24347,
        38816, 23495, 36060, 51788, 49714, 3793, 46944, 39533, 36676, 27945,
        32349, 45544, 27603, 35837, 35808, 49356, 31983, 36845, 32371, 25854,
        27099, 24472, 28335, 28205, 26191, 3929, 44624, 1724, 52888, 34103,
        38774, 27584, 26880, 4165, 26806, 30519, 6113, 27696, 2797, 28196,
        33040, 50928, 30872, 29200, 24264, 28654, 36111, 29785, 32098, 12601,
        32359, 27513, 22666, 38491, 21256, 25370, 31496, 8200, 9479, 29494,
        50740, 32314, 36726, 20278, 47497, 37292, 25410, 22953, 39620, 30133,
        36244, 31893, 39052, 23413, 25314, 54049, 38124, 38115, 37586, 27978,
        50549, 54663, 1942, 38308, 49707, 33527, 40860, 44216, 5123, 29764,
        36010, 3542, 38675, 21480, 31014, 63724, 27580, 22103, 30970, 28154,
        3931, 32533, 20451, 37706, 36703, 20406, 45377, 6028, 50519, 40100,
        25735, 25794, 30068, 36140, 28051, 477, 1043254, 31482, 28828, 4875,
        39050, 32745, 45130, 8855, 26604, 28825, 27147, 36781, 31568, 9504,
        21671, 36869, 30504, 39347, 1042479, 24691, 30178, 50734, 35178, 22684,
        26865, 55193, 22852, 30208, 21719, 65102, 33515, 23308, 37276, 9585,
        6114, 61607, 63732, 2799, 21866, 25602, 28889, 31975, 47344, 22446,
        25341, 36049, 24336, 47449, 24971, 33333, 40573, 29701, 35114, 32824,
        36994, 50028, 47452, 33688, 22108, 22275, 38643, 25601, 32010, 25358,
        39031, 23786, 32538, 38342, 52308, 27527, 4614, 31098, 54660, 38607,
        1042482, 50545, 33162, 36995, 21702, 26103, 20440, 21489, 33134, 61550,
        3488, 21627, 20031, 22974, 23092, 1041718, 37193, 33463, 29020, 33400,
        4173, 8056, 53888, 36929, 24396, 38192, 21874, 609, 26974, 46036,
        33706, 769, 4722, 25139, 26485, 23629, 3873, 4167, 53672, 2858, 26726,
        33743, 37168, 48977, 29696, 46316, 59106, 4164, 59116, 28780, 27103,
        51469, 39607, 26505, 24832, 4763, 8238, 33213, 5251, 25134, 6049,
        44081, 36635, 22956, 26866, 22732, 39719, 39314, 24709, 30415, 54943,
        3451, 27902, 57347, 45785, 50544, 35905, 23125, 30511, 34003, 32521,
        3462, 30361, 26406, 23673, 4001, 34532, 54729, 35435, 20461, 1042478,
        48976, 53680, 45143, 3360, 24684, 28053, 35709, 44188, 4961, 24092,
        25942, 63348, 23791, 21652, 32843, 38130, 25376, 21827, 8223, 21571,
        39285, 34241, 47569, 4726, 32399, 34581, 36070, 8869, 25282, 31310,
        21283, 38635, 4209, 9607, 28904, 2798, 27863, 28437, 30403, 2508,
        25078, 38808, 33187, 20642, 39301, 37389, 53304, 28465, 8166, 26099,
        8853, 25892, 12432, 48184, 2818, 3874, 39387, 35516, 26552, 39464,
        1465, 2594, 33491, 2866, 6055, 31388, 34837, 39654, 29344, 36746,
        37799, 36447, 59016, 54176, 25810, 26326, 8596, 34690, 57361, 23167,
        27762, 32806, 25769, 36978, 1263, 27278, 39612, 5125, 65105, 32697,
        44413, 6100, 39059, 55136, 33828, 29835, 6079, 34631, 49480, 45806,
        39243, 8239, 35763, 27609, 27859, 22821, 52244, 61548, 24816, 54169,
        39108, 28586, 21234, 2761, 21949, 29864, 29001, 35970, 4009, 26161,
        46748, 46763, 491, 37619, 37159, 28173, 4850, 23100, 34261, 44191,
        39156, 8564, 29096, 821, 20731, 39187, 49709, 1963, 12610, 40779,
        52841, 5314, 22767, 33105, 21816, 32666, 59111, 26707, 39621, 33304,
        55152, 40786, 40687, 3507, 4197, 13212, 30202, 38990, 5198, 3741,
        59109, 22121, 25530, 37675, 59101, 39853, 32485, 12570, 26751, 1941,
        44151, 32554, 25467, 3467, 48521, 1042480, 24407, 20369, 30187, 21032,
        28711, 31330, 28751, 38788, 1967, 37274, 44180, 9321, 23536, 31820,
        40201, 4770, 9523, 5130, 20760, 30757, 39848, 32526, 46360, 21421,
        29158, 715, 24199, 45573, 21978, 29824, 25000, 26238, 4826, 20993,
        40557, 23254, 1821, 4251, 28699, 31167, 3220, 27022, 62047, 40120,
        20490, 57477, 4622, 30179, 22831, 4728, 49481, 8750, 32187, 34065,
        6074, 46416, 63685, 47577, 1648, 53472, 21658, 33247, 24119, 4925,
        38056, 34153, 46317, 46749, 1175, 4629, 28132, 47960, 44292, 28198,
        28340, 39562, 21413, 38179, 25662, 4023, 22999, 4814, 37195, 25294,
        33011, 32999, 24958, 21441, 24811, 29796, 38197, 28861, 25102, 21536,
        34093, 31267, 23480, 31382, 22016, 1043331, 54800, 50564, 12583, 28416,
        28293, 59125, 21617, 63248, 31686, 33725, 47020, 12575, 32341, 33253,
        1043212, 699, 24398, 53301, 34137, 32386, 59037, 25087, 36993, 20319,
        2891, 7925, 33503, 30201, 1042485, 24571, 4721, 32671, 31252, 21884,
        33722, 9837, 52041, 4654, 34691, 32996, 39519, 26578, 23162, 36461,
        34811, 466, 47495, 31933, 38170, 24361, 28479, 27018, 30633, 4193,
        40442, 9688, 9603, 32503, 21648, 22707, 26570, 20689, 32639, 26541,
        36184, 26946, 8048, 35126, 34115, 29626, 3099, 32305, 29801, 37638,
        31117, 34071, 3020, 39559, 55016, 25225, 12616, 47104, 61656, 3476,
        29184, 36799, 38112, 22021, 25179, 44273, 48173, 20458, 36524, 63234,
        57360, 35781, 27292, 48727, 37569, 23522, 4899, 13115, 27607, 47688,
        54988, 31513, 37610, 1462, 40367, 37445, 32350, 3338, 31998, 658,
        38956, 10006, 52412, 25527, 31713, 9839, 34152, 49296, 23525, 48282,
        10048, 34310, 33479, 28156, 818, 45356, 3911, 1816, 22829, 23625,
        40633, 32718, 35032, 35538, 24130, 20504, 28644, 25100, 4675, 25248,
        55113, 40485, 59020, 31171, 4772, 33454, 31751, 28160, 6063, 2854,
        31368, 33580, 26925, 9606, 49939, 32458, 38045, 21553, 4819, 33418,
        23143, 36671, 44403, 9501, 20291, 47340, 54029, 25600, 35692, 2863,
        8255, 21591, 50969, 5335, 9583, 54184, 33005, 30105, 38497, 28640,
        44861, 25319, 29440, 23729, 40284, 4810, 4166, 13095, 30328, 3944,
        59113, 8016, 30048, 20970, 12317, 23769, 773, 33502, 24421, 2466,
        801, 24760, 50956, 53040, 31627, 27769, 30347, 21526, 48192, 33240,
        20120, 54077, 30239, 31174, 34619, 24920, 53428, 59184, 40515, 40023,
        3794, 44051, 26112, 20812, 3584, 34558, 24413, 47945, 4821, 26654,
        39568, 36294, 30938, 8182, 54044, 27035, 37213, 9643, 24996, 54996,
        32519, 23853, 19999, 23700, 38417, 54548, 28297, 35109, 9117, 45068,
        44202, 31118, 3797, 21878, 28108, 25488, 27179, 32633, 9476, 44217,
        2881, 24822, 26389, 46916, 1719, 55072, 36620, 9438, 38189, 30640,
        34645, 4189, 9744, 47926, 28353, 28071, 9728, 25413, 39130, 4706,
        28867, 39661, 38893, 1042481, 34986, 36956, 34083, 31629, 20991, 25744,
        33100, 30249, 9481, 27742, 40522, 29409, 1470, 22329, 25371, 8601,
        39479, 26348, 20060, 52313, 23046, 20916, 31968, 31224, 1723, 36162,
        30629, 20433, 53244, 29771, 20273, 33586, 20348, 20478, 32641, 1281,
        22134, 3622, 33137, 59087, 20312, 9120, 35427, 32690, 63738, 38126,
        33936, 1040426, 65117, 28063, 50784, 28626, 34396, 39535, 4649, 21638,
        63727, 27964, 36381, 4638, 51500, 37530, 29605, 30153, 30233, 30910,
        22241, 47364, 3511, 31659, 54945, 46388, 59054, 33399, 32496, 21426,
        23445, 30717, 45188, 22199, 1041584, 59107, 28174, 36299, 23461, 1826,
        9515, 45934, 27595, 4846, 3788, 30090, 28102, 38671, 30746, 47493,
        40499, 34367, 4194, 44555, 1041705, 10063, 20356, 23996, 25571, 63723,
        1663, 23568, 1461, 1731, 15104, 4618, 617, 28074, 29723, 31146, 21537,
        37261, 48981, 27189, 26665, 48195, 12631, 9116, 51692, 46769, 33575,
        9119, 27084, 29313, 26185, 23146, 29922, 21646, 53553, 45740, 3203,
        2461, 45012, 25653, 40300, 12318, 29469, 63725, 20525, 10004, 46896,
        21937, 30778, 21828, 44637, 38086, 27586, 44860, 25212, 28847, 25004,
        37150, 6120, 32024, 61647, 31560, 23157, 48374, 33585, 28458, 46280,
        33255, 30186, 511, 34506, 63734, 39237, 3210, 9115, 21422, 37397,
        50659, 29662, 39545, 8838, 27648, 1042484, 34870, 30844, 47610, 714,
        8815, 4213, 21657, 33940, 44557, 24951, 25898, 46357, 4220, 37264,
        22718, 45713, 27553, 9531, 59097, 53485, 54072, 33179, 4219, 48852,
        39138, 30933, 51900, 39563, 21990, 8814, 34769, 33603, 3104, 36989,
        21792, 28540, 26624, 49456, 9539, 21533, 47464, 53431, 44611, 1840,
        49256, 4658, 38859, 30180, 12595, 27280, 8150, 53000, 2435, 464, 32104,
        4669, 9689, 30518, 38346, 12584, 20500, 5229, 28197, 48307, 40285,
        31584, 2844, 27739, 3991, 65118, 29935, 47502, 5456, 28544, 36894,
        59104, 33640, 39311, 20472, 29243, 24488, 8052, 20565, 21714, 31899,
        21501, 3082, 25824, 27323, 40495, 21269, 9118, 54411, 4003, 3474,
        30106, 991, 1042483, 35728, 27028, 28046, 441, 22036, 44865, 32427,
        38173, 5319, 12336, 33215, 38133, 20191, 31729, 26727, 53476, 25421,
        34905, 27453, 34670, 3355, 28651, 21545, 25944, 34388, 25912, 31384,
        59112, 12433, 45235, 38111, 25119, 61501, 28463, 59021, 27053, 38892,
        23805, 36944, 21550, 24091, 33660, 26613, 34943, 48904, 12618, 8569,
        35892, 24561, 3795, 12579, 31207, 33421, 50277, 35203, 23218, 34851,
        46037, 712, 23919, 24596, 592, 31260, 23158, 31806, 335, 34201, 3073,
        20149, 31074, 1043330, 2839, 4765, 32286, 65106, 301, 36732, 37532,
        22070, 35815, 30655, 37021, 47701, 5200, 38309, 35867, 59108, 61485,
        5333, 44225, 31692, 31414, 51132, 22391, 3852, 21473, 63687, 20106,
        27529, 39110, 32129, 4135, 25754, 7823, 30923, 12555, 28977, 4627,
        54607, 771, 33862, 27016, 21985, 21599, 36487, 30545, 37624, 30154,
        9641, 20147, 34383, 32660, 27822, 32482, 25531, 44751, 8565, 31565,
        1825, 33750, 5507, 27994, 20034, 45700, 46433, 35819, 34427, 45227,
        12623, 38504, 30597, 38171, 33071, 20834, 3792, 29280, 53220, 20127,
        8134, 34597, 29854, 52507, 57503, 44900, 39307, 30109, 8254, 59110,
        12526, 51796, 23831, 38253, 31725, 30609, 38076, 30352, 28078, 26248,
        4231, 25803, 34527, 22948, 33450, 20898, 65110, 1661, 38039, 27067,
        27320, 21606, 40550, 561, 20653, 4753, 9601, 49564, 25880, 59126,
        36779, 32792, 1041701, 21595, 25891, 15360, 34993, 9332, 30318, 34579,
        21342, 32361, 1824, 48531, 50052, 1811, 34407, 34770, 29989, 26855,
        21799, 24817, 2384, 52996, 40569, 29165, 40840, 25520, 4708, 34543,
        28327, 35331, 25303, 9831, 35183, 38935, 1371, 4108, 31381, 44405,
        1041586, 2315, 38425, 35916, 59140, 24698, 36837, 38771, 1041721,
        59185, 50489, 29722, 36405, 700, 44749, 24469, 4756, 29599, 1843,
        3537, 21119, 46176, 8494, 38107, 32652, 29990, 24812, 24331, 4657,
        29898, 596, 22775, 20396, 21582, 22165, 25315, 277, 21894, 47469,
        38210, 59025, 39201, 31921, 51219, 23579, 8733, 26212, 40480, 37300,
        1041634, 21417, 34829, 24473, 39851, 27795, 23011, 30136, 23138, 40521,
        63237, 24257, 53077, 31721, 23018, 20469, 32714, 36418, 36841, 48724,
        9711, 38000, 22754, 38924, 3988, 36324, 21173, 1813, 34996, 46516,
        34191, 34085, 1043234, 1954, 373, 14592, 3993, 22007, 23059, 25420,
        45460, 50924, 29403, 23437, 1949, 7984, 4705, 21670, 47128, 25291,
        293, 63238, 49438, 36802, 20164, 34885, 4827, 23270, 30169, 35791,
        35881, 13214, 28712, 35884, 34814, 4620, 29088, 28402, 36426, 35866,
        50687, 63281, 36761, 30822, 1836, 21310, 26964, 24682, 54148, 31087,
        23860, 4873, 46400, 39003, 3502, 50493, 38722, 4777, 32631, 23462,
        39995, 4841, 24061, 54161, 55129, 22158, 35098, 50025, 21675, 25431,
        3348, 1834, 23408, 30232, 35830, 3881, 24340, 44613, 28805, 9832,
        49788, 40107, 35039, 36068, 48139, 23869, 32491, 9760, 53459, 4864,
        53960, 38094, 28457, 20608, 31153, 30768, 8050, 4963, 23620, 35559,
        9333, 51144, 23789, 29336, 62018, 32997, 35563, 4869, 27462, 1659,
        4633, 15872, 33081, 6019, 45139, 50143, 38026, 31824, 4939, 27617,
        25344, 23997, 1043188, 28126, 32557, 27781, 1770, 1245, 28167, 49913,
        50893, 29641, 27263, 38128, 39253, 28222, 9662, 1789, 4243, 1473,
        1679, 45184, 30241, 20800, 28140, 31061, 34015, 4214, 49396, 9130,
        28672, 1041707, 4782, 25494, 34568, 31042, 5205, 25558, 29996, 46892,
        25326, 1042451, 4758, 4611, 5316, 48730, 50044, 593, 1676, 36955,
        33222, 25466, 39342, 8709, 1042391, 21698, 21668, 22244, 32044, 35131,
        23628, 1790, 51329, 40063, 38331, 36036, 24813, 29113, 53237, 53568,
        37406, 36968, 50760, 48159, 831, 36368, 39089, 63631, 23075, 3092,
        33983, 30758, 23504, 31308, 1620, 4192, 24447, 37510, 5285, 39333,
        54187, 23781, 57345, 30183, 59094, 37007, 2698, 4608, 25549, 37742,
        33193, 22002, 3229, 1946, 33784, 3796, 26686, 35548, 1728, 28407,
        5503, 52868, 28625, 9681, 35635, 44641, 4849, 27825, 58999, 21708,
        9680, 34758, 26551, 3674, 603, 39087, 29145, 4006, 7747, 33636, 36460,
        5290, 22160, 4828, 20769, 38541, 25062, 29179, 65532, 37043, 13199,
        31668, 34068, 39600, 20295, 12556, 30394, 1938, 30305, 1195, 24726,
        29619, 9586, 51789, 865, 1771, 37555, 45823, 63686, 35057, 26728,
        52152, 22809, 28088, 54396, 33600, 24826, 40702, 40848, 47129, 1644,
        32703, 22137, 51334, 28227, 24756, 34451, 58980, 4624, 8902, 1041617,
        713, 21913, 29462, 22874, 26891, 1658, 63309, 31567, 38358, 44079,
        28753, 21863, 6115, 49344, 31071, 515, 53217, 375, 45798, 28228, 31858,
        52180, 21277, 1956, 9352, 9125, 3362, 27355, 21655, 21872, 47607,
        39825, 52899, 33094, 1209, 25772, 9613, 808, 59038, 21522, 58865,
        24980, 45253, 58636, 57346, 23810, 22427, 33449, 50491, 24913, 633,
        34417, 38894, 21994, 30402, 38552, 53484, 1945, 24527, 22257, 10877,
        48072, 9828, 468, 21057, 32609, 44452, 57812, 8215, 29461, 25711,
        37648, 2544, 35988, 21405, 22178, 33323, 26015, 26584, 32753, 62139,
        3102, 28000, 33583, 25084, 1041200, 1042433, 3943, 39361, 31434, 720,
        9512, 35820, 26487, 35616, 28425, 33107, 24792, 21240, 49808, 22221,
        26164, 2849, 2870, 33096, 36040, 20807, 23882, 28538, 33210, 39711,
        53825, 1643, 49108, 33615, 59403, 61626, 49928, 2757, 33355, 22139,
        4203, 51428, 33205, 28356, 27673, 23005, 33477, 44866, 35924, 53597,
        38323, 26003, 34946, 20367, 34022, 38466, 37709, 27153, 59095, 29384,
        32761, 34282, 27523, 32381, 9774, 12571, 34314, 26851, 2718, 4132,
        28532, 22136, 34728, 33669, 25034, 4673, 35764, 36490, 28950, 37502,
        20643, 45231, 27904, 11520, 23090, 26199, 59390, 36343, 30684, 25077,
        34784, 8198, 30568, 34044, 29134, 39123, 38150, 30775, 59057, 22163,
        37393, 8001, 4645, 49677, 37200, 54747, 33686, 39553, 37219, 25721,
        45957, 44361, 320, 37434, 38589, 27821, 5359, 1041223, 34847, 26107,
        57759, 21939, 29852, 34612, 34360, 22159, 36409, 618, 39627, 50771,
        32475, 4172, 32412, 37001, 15616, 52843, 61483, 26503, 29355, 59023,
        31255, 38068, 31103, 28510, 36022, 34948, 63719, 21294, 61372, 61664,
        40150, 36163, 12617, 50753, 30820, 1810, 33007, 8566, 28325, 33129,
        24186, 59119, 48333, 1041648, 23057, 9745, 12850, 35973, 24124, 21804,
        29502, 33074, 48281, 24581, 25642, 51673, 29674, 39850, 35543, 34949,
        32181, 26244, 25115, 20112, 4652, 34615, 26017, 33338, 48737, 25620,
        26196, 59138, 63333, 23825, 21317, 26839, 45600, 35578, 3075, 9998,
        31142, 4710, 6066, 22349, 26719, 44169, 4874, 31428, 59175, 45321,
        38096, 58971, 34479, 35754, 39509, 19989, 49567, 21970, 32774, 40157,
        2847, 647, 34739, 34496, 40766, 38012, 4809, 1689, 2822, 39993, 8771,
        39221, 33894, 9428, 20515, 36347, 4130, 49520, 28497, 50276, 52258,
        36759, 31959, 21117, 26965, 2842, 1041702, 977, 58552, 814, 63681,
        6116, 24012, 1127, 24337, 49679, 25523, 38649, 34541, 22744, 27311,
        30562, 65111, 51923, 31104, 30442, 34647, 28951, 6095, 31786, 10026,
        1042476, 29678, 40605, 653, 7956, 61558, 34502, 21707, 24949, 49093,
        10061, 25474, 38670, 27075, 34578, 4667, 28593, 36834, 21757, 34553,
        307, 21636, 34635, 48528, 38069, 25616, 3801, 2888, 20456, 34222,
        21243, 29030, 4731, 507, 21005, 343, 4678, 3799, 4636, 27988, 4938,
        36155, 33914, 4965, 25160, 30821, 9334, 5328, 61614, 49360, 58773,
        35014, 34563, 59157, 13568, 52405, 23346, 38148, 63683, 4008, 33390,
        1041720, 21988, 1649, 32353, 2580, 31418, 40639, 21867, 20762, 52853,
        2821, 8568, 32901, 31658, 36961, 26249, 27315, 37036, 4216, 37476,
        59032, 3544, 35174, 38051, 4241, 29855, 47943, 31923, 12620, 63233,
        21499, 4923, 39589, 27647, 513, 39634, 21541, 22702, 25306, 34623,
        1043235, 4013, 35074, 51792, 52600, 38718, 9322, 26722, 25462, 1832,
        12319, 766, 20375, 4920, 44621, 23896, 35855, 30874, 30759, 29351,
        32942, 57350, 20850, 21500, 26407, 65125, 24751, 1042460, 6121, 22063,
        58637, 39214, 36667, 31063, 49573, 63684, 65123, 32679, 40133, 32365,
        3489, 39255, 38335, 24380, 12032, 3800, 62719, 38256, 38765, 47159,
        21972, 39631, 1041202, 8960, 28396, 26917, 24258, 63682, 38938, 30242,
        39405, 30883, 26188, 21471, 21902, 29690, 27001, 32046, 8598, 4230,
        49961, 2560, 21085, 59096, 38034, 4754, 29934, 7969, 3798, 32029,
        36425, 45845, 1815, 30679, 44609, 24900, 27192, 33830, 63329, 27079,
        21558, 38178, 10066, 21510, 22313, 23265, 29744, 63739, 31494, 33065,
        40617, 26991, 63337, 22209, 63737, 33907, 28451, 21691, 8895, 53095,
        46895, 50032, 35826, 31800, 1040824, 39250, 32184, 501, 20558, 4878,
        28821, 26166, 27421, 2025, 4797, 22003, 59191, 23833, 27166, 39557,
        63726, 30091, 33630, 59036, 37350, 3879, 54973, 30780, 25288, 3487,
        20822, 39582, 25332, 12551, 23539, 20389, 5234, 30818, 27872, 1123,
        57720, 39122, 23105, 36495, 30604, 23782, 32236, 995, 26638, 1835,
        58942, 35594, 5206, 40843, 34193, 13076, 33335, 30817, 1846, 23418,
        944, 39675, 40141, 26688, 59117, 21833, 1715, 39079, 36346, 34978,
        8707, 25082, 29647, 48856, 61692, 30071, 37728, 5418, 34552, 35461,
        37891, 63280, 3121, 36427, 40510, 26171, 22741, 30777, 44740, 29394,
        20721, 12594, 34952, 39585, 47028, 50739, 29317, 52645, 26296, 33848,
        28095, 30045, 3916, 45480, 20547, 22462, 38217, 37970, 51674, 25373,
        1041680, 3880, 47719, 35628, 58841, 29322, 9519, 24675, 329, 12621,
        1043241, 29736, 1104, 44808, 50567, 28270, 36856, 58991, 20486, 36076,
        2365, 36479, 9493, 57480, 28635, 21669, 34199, 46375, 21087, 61627,
        29029, 23723, 35084, 34108, 37312, 25899, 6102, 58998, 1645, 26060,
        25035, 2861, 37225, 9587, 29807, 22592, 53104, 21068, 1043185, 23735,
        3787, 40482, 39319, 29136, 30306, 11056, 34849, 824, 8366, 63282,
        26137, 49668, 29999, 40748, 36382, 33682, 30652, 29484, 28152, 36740,
        49343, 24806, 36118, 4242, 35912, 34162, 28386, 30738, 32377, 23301,
        51609, 4917, 8614, 26075, 8748, 34510, 28390, 31546, 33588, 28583,
        35357, 28734, 50137, 24814, 50144, 1042399, 36489, 2876, 1763, 28408,
        4099, 29130, 31059, 31657, 52240, 5354, 20956, 29166, 25661, 38747,
        35281, 30857, 26978, 32895, 21886, 45072, 45352, 47103, 4907, 51908,
        8680, 21549, 30350, 22024, 54749, 31631, 62017, 4674, 4612, 39053,
        45656, 37396, 38737, 32619, 37032, 31709, 33985, 33393, 37716, 9527,
        28399, 50433, 1858, 613, 26717, 37169, 27710, 63289, 27628, 14848,
        32552, 33476, 33003, 37000, 22575, 4854, 28061, 46904, 9335, 9424,
        46616, 35811, 3875, 58974, 27386, 48289, 52908, 29977, 38967, 59178,
        39699, 20594, 26979, 36706, 1042404, 24779, 1042468, 7717, 1458, 9743,
        24530, 30663, 35749, 38601, 61669, 21343, 34306, 59201, 27537, 34001,
        27887, 776, 30472, 24774, 29585, 20925, 25540, 9615, 39309, 28693,
        23049, 28598, 4904, 45339, 30855, 30087, 28766, 49941, 2704, 59018,
        28610, 6060, 8725, 38408, 21604, 24575, 32537, 8567, 27929, 30344,
        45825, 13312, 1181, 1040826, 34047, 36019, 38860, 37826, 22376, 58661,
        32945, 36146, 32171, 58732, 30782, 7779, 12559, 26697, 31287, 37561,
        38356, 22138, 39757, 25736, 38224, 38514, 25503, 37711, 25775, 3328,
        37928, 1596, 49816, 24665, 33537, 38398, 38328, 52320, 35575, 21981};
     System.arraycopy(temp, 0, chars, chars.length - temp.length, temp.length);
   }
  }
}

Other Java examples (source code examples)

Here is a short list of links related to this Java CharMatcherBenchmark.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.