As computing becomes more ubiquitous in our objects, designers need to be more aware of how to design meaningful interactions into electronically enhanced objects. At the University of Washington, a class of junior Interaction Design majors is exploring this question. These pages chronicle their efforts.
Wednesday, June 10, 2015
HEKTAR the lamp // Nick Ricci & Naoki Hisamoto
11in x 17 in Poster describing functionality
Follow HEKTAR on Twitter @HektartheLamp
Watch video on https://www.youtube.com/watch?v=kalP5woxf5A&feature=youtu.be
Tess & Jordan chair construction
We first soldered all the wires together, extended some wires, and then cut into the back of our chair to hide the arduino. We then covered the whole chair in nice black fabric. The speaker is close to the top so the person sitting can hear the beep but the aruduino is near the bottom by the light sensor which only shows slightly in the crack between the top and bottom the chair. The arduino is as discrete and sneaky as possible. Now, this chair looks like any regular office chair that someone would work in, but has the extra beeps of incentive to take breaks!
Wiimote Knolling
For the knolling project I chose to take apart a wiimote. The process of disassembly was a bit trickier than I expected. The wiimote uses screws that have a triangular slot so I had to track down the appropriate screwdriver. Once apart the controller was fairly straightforward. One circuitboard connected to all of the physical buttons. Also on the circuitboard was an accelerometer as well as a bluetooth chip and ir lights. After further research online I found the basic functions of the light sensor/sender and how the wii is able to calculate where you are pointing the wiimote.
Neopixel Fun
For the timer that controls the length of time that the phone is held down for we wanted to include a visual indicator to show the increasing or decreasing time. After looking at products on adafruit we decided that a neopixel ring combined with a twist knob would be the best combination to show this.
Hooking up the neopixels and supporting library was quick although learning some of the commands and methods for controlling the individual pixels was more difficult than anticipated. Specifically turning the pixels back off.
Wiring setup for testing. Potentiometer hooked up to the neopixel ring for control.
The following is the code that created the lighting pattern that we settled on. The code makes the lights go from green to red following the rotation of the twist knob.
#include <Adafruit_NeoPixel.h>
#include <avr/power.h>
#define PIN 6
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 24
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 5; // delay for half a second
void setup() {
Serial.begin(9600);
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
// For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
int sensorValue = analogRead(A0);
int green = 0;
int red = 0;
int pixel = 0;
pixel = map (sensorValue, 0, 1023, 0, 50);
red = map (sensorValue, 0, 1023, 0, 50);
green = map (sensorValue, 0, 1023, 50, 0);
int something=map(sensorValue,0,1023,0,24);
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.clear();
for (int i=0; i<something; i++){
pixels.setPixelColor(i , pixels.Color(red, green , 0)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
}
}
CUMULUS Final [Jessica and Gloria]
CUMULUS is a lamp that can detect weather conditions around the world and respond to them by changing the color of its light. Use Culumus to alert you to weather conditions or just enjoy its colorful and playful light effects.
Soldering Struggles
After a good few weeks of use our $10 soldering iron up and broke. The broken ceramic head made fixing the iron impossible, so a quick order off amazon was needed to get back to soldering.
For the original phone lifter testing it was apparent that only using 30 degrees of rotation out of the available 180 was wasting important phone lifting power. So after a meeting with Dominic and a discussion of types of gears, we came up with a more efficient means of lifting phones. Some quick rhino work and a few cuts on the laser cutter and some extra lines of code and we had a gear that lifted the phone to the full height with 180deg of rotation and no more power struggles.
Diagram of new lifter
Servo testing tower
Toaster table will serve your phone when you really need it! Summer and Kyle
Phones are always distracted us now in modern life, and people feel it is very frustrated to go on a date with someone who always get obsessed with their phones. So, my partner and I came up with this idea of toaster table. The toaster table is a table that helps your to avoid bad table behaviors. The wood top has multiple slots that you can put your phones in, then the table will sense the phones and lower them underneath the table. Then, you can set up a time for the table to lift up your phones by rotating the nob on the table, which contains LED lights around.
Code // Nick Ricci & Naoki Hisamoto
This is the completed code for our project. It took various parts from various places.
/* //~~~~~~~~~~Description~~~~~~~~~~~~//
Ping))) Sensor
This sketch reads a PING))) ultrasonic rangefinder and returns the
distance to the closest object in range. To do this, it sends a pulse
to the sensor to initiate a reading, then listens for a pulse
to return. The length of the returning pulse is proportional to
the distance of the object from the sensor. \
This distance variable is used to fade the LED proportional to the
distance of the object.
The circuit:
* +V connection of the PING))) attached to +5V
* GND connection of the PING))) attached to ground
* SIG connection of the PING))) attached to digital pin 7
* LED connected to pin 9 (PWM)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~//
Created 3 Nov 2008
by David A. Mellis
Modified 30 Aug 2011
by Tom Igoe
Modified 25 Dec 2011
by Ritesh Kanjee
This example code is in the public domain.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
*/
// this constant won't change. It's the pin number
// of the sensor's output:
const int pingPin = 10;
// connected to the base of the transistor
const int transistorPin = 9;
int focusrelay = 7;
int shutterrelay = 6;
int fadeValue, fadeValue2 ;
void setup()
{
// initialize serial communication:
Serial.begin(9600);
pinMode(transistorPin, OUTPUT);
pinMode(focusrelay, OUTPUT);
pinMode(shutterrelay, OUTPUT);
analogWrite(transistorPin, 30);
}
void loop()
{
//-------------Get-Distance-----------------------------//
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm, cm2;
// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
//-------------End-Get-Distance----------------------------//
//-------------Fading-LED------------------------------//
// If Distance is 90 cm then do the following:
if (cm==90)
{
// LED brightens from dimmed state
for (int brightness = 30; brightness < 255; brightness++) {
analogWrite(transistorPin, brightness);
delay(10);
}
// Relays triggered to take picture
digitalWrite(focusrelay, HIGH);
delay(200);
digitalWrite(shutterrelay, HIGH);
delay(1000);
delay(2000);
// LED returns to dimmed state
for (int brightness = 255; brightness >= 30; brightness--) {
analogWrite(transistorPin, brightness);
delay(10);
}
// Relays turn off
digitalWrite(focusrelay, LOW);
digitalWrite(shutterrelay, LOW);
delay(1000);
delay(2000);
}
//If distance is not 90cm then lamp remains in dimmed lighting
else
{
analogWrite(transistorPin, 30);
}
//-------------End-Fading-LED-----------------------------//
//-------------Debugging-------------------------------//
//For debugging purposes
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
Serial.print("Centi 2 :");
Serial.print( fadeValue2 );
Serial.println();
//-------------End-Debugging------------------------------//
delay(10); // Short Delay allows for smoother fading
} //End Loop
//-------------Functions-------------------------------//
long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
//------------End-Functions-------------------------------//
//End Of Program
/* //~~~~~~~~~~Description~~~~~~~~~~~~//
Ping))) Sensor
This sketch reads a PING))) ultrasonic rangefinder and returns the
distance to the closest object in range. To do this, it sends a pulse
to the sensor to initiate a reading, then listens for a pulse
to return. The length of the returning pulse is proportional to
the distance of the object from the sensor. \
This distance variable is used to fade the LED proportional to the
distance of the object.
The circuit:
* +V connection of the PING))) attached to +5V
* GND connection of the PING))) attached to ground
* SIG connection of the PING))) attached to digital pin 7
* LED connected to pin 9 (PWM)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~//
Created 3 Nov 2008
by David A. Mellis
Modified 30 Aug 2011
by Tom Igoe
Modified 25 Dec 2011
by Ritesh Kanjee
This example code is in the public domain.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
*/
// this constant won't change. It's the pin number
// of the sensor's output:
const int pingPin = 10;
// connected to the base of the transistor
const int transistorPin = 9;
int focusrelay = 7;
int shutterrelay = 6;
int fadeValue, fadeValue2 ;
void setup()
{
// initialize serial communication:
Serial.begin(9600);
pinMode(transistorPin, OUTPUT);
pinMode(focusrelay, OUTPUT);
pinMode(shutterrelay, OUTPUT);
analogWrite(transistorPin, 30);
}
void loop()
{
//-------------Get-Distance-----------------------------//
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm, cm2;
// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
//-------------End-Get-Distance----------------------------//
//-------------Fading-LED------------------------------//
// If Distance is 90 cm then do the following:
if (cm==90)
{
// LED brightens from dimmed state
for (int brightness = 30; brightness < 255; brightness++) {
analogWrite(transistorPin, brightness);
delay(10);
}
// Relays triggered to take picture
digitalWrite(focusrelay, HIGH);
delay(200);
digitalWrite(shutterrelay, HIGH);
delay(1000);
delay(2000);
// LED returns to dimmed state
for (int brightness = 255; brightness >= 30; brightness--) {
analogWrite(transistorPin, brightness);
delay(10);
}
// Relays turn off
digitalWrite(focusrelay, LOW);
digitalWrite(shutterrelay, LOW);
delay(1000);
delay(2000);
}
//If distance is not 90cm then lamp remains in dimmed lighting
else
{
analogWrite(transistorPin, 30);
}
//-------------End-Fading-LED-----------------------------//
//-------------Debugging-------------------------------//
//For debugging purposes
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
Serial.print("Centi 2 :");
Serial.print( fadeValue2 );
Serial.println();
//-------------End-Debugging------------------------------//
delay(10); // Short Delay allows for smoother fading
} //End Loop
//-------------Functions-------------------------------//
long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
//------------End-Functions-------------------------------//
//End Of Program
Stepper Testing
Looking into different ways to create the phone lifting mechanism we wanted to test different types of motors. Having successfully tested with a servo and noticing the reduced lifting power of the mini servo we purchased a breakout board for running a more powerful stepper motor. Connecting and soldering the breakout was a breeze and with an expansive library for controlling the motor we were up and rotating.
Breakout setup.
Doing further testing we found that while more powerful the stepper was more difficult programing the type of phone lifting/dropping we were hoping for. Next step: purchasing a full size servo!
Weather Lamp Production Cost [Jessica and Gloria]
Weather Lamp Production Cost (excluding laptop)
Arduino Uno Starter Kit (Includes Instruction Book) on Amazon $54.99
Polyester Filling from Blicks
Nulsom Neopixel Strips x2 from Amazon $15.90
Hot Glue Gun from UW Bookstore $10
Plastic Base from Dollar Tree $1
Total:
Total (excluding the Arduino): $36.90
Arduino Uno Starter Kit (Includes Instruction Book) on Amazon $54.99
Polyester Filling from Blicks
Nulsom Neopixel Strips x2 from Amazon $15.90
Hot Glue Gun from UW Bookstore $10
Plastic Base from Dollar Tree $1
Total:
Total (excluding the Arduino): $36.90
Initial Plan // Nick Ricci & Naoki Hisamoto
This is the layout of our initial plan.
1. Shape Recognition from the Raspberry Pi
2. Arduino is triggered to brighten lights and take picture.
3. Eye-Fi card uploads the picture to the Raspberry Pi.
4. Raspberry Pi sends picture to social media using IFTTT.
However, our plans drastically changed as the Raspberry Pi became a problem for us. We replaced the shape recognition with an Ultrasonic Range Sensor and instead of the pictures getting sent from the Eye-Fi card to the Raspberry Pi, it is sent to a computer which sends it to social media using IFTTT.
1. Shape Recognition from the Raspberry Pi
2. Arduino is triggered to brighten lights and take picture.
3. Eye-Fi card uploads the picture to the Raspberry Pi.
4. Raspberry Pi sends picture to social media using IFTTT.
However, our plans drastically changed as the Raspberry Pi became a problem for us. We replaced the shape recognition with an Ultrasonic Range Sensor and instead of the pictures getting sent from the Eye-Fi card to the Raspberry Pi, it is sent to a computer which sends it to social media using IFTTT.
Weather Lamp Final Code [Jessica and Gloria]
Arduino Not Reading the Serial Monitor Issue
I encountered the problem where delays interfered with reading the serial output (the Arduino wouldn't register a button press while the program was delayed). I tried to write the neopixel light code without delays (similar to the blink without delay tutorial) but I couldn't figure it out so that we could still get the desired effect/lighting that we wanted. My solution was to just make the Arduino read the serial input every so often in the neopixel display functions. It's definitely not the best/most efficient code, but at least it's working :)
Processing
import processing.serial.*;
import com.onformative.yahooweather.*;
Serial myPort; // Create object from Serial class
YahooWeather weather;
int updateIntervallMillis = 30000;
void setup()
{
String portName = Serial.list()[2]; //change the 0 to a 1 or 2 etc. to match your port
myPort = new Serial(this, portName, 9600);
size(700, 300);
fill(0);
textFont(createFont("Arial", 14));
// 2442047 = the WOEID of Berlin
// use this site to find out about your WOEID : http://sigizmund.info/woeidinfo/
weather = new YahooWeather(this, 12798949, "c", updateIntervallMillis);
}
void draw() {
weather.update();
background (255);
text("City: "+weather.getCityName()+"; Region: "+weather.getRegionName()+"; Country: "+weather.getCountryName()+"; Last updated: "+weather.getLastUpdated(), 20, 20);
text("Lon: "+weather.getLongitude()+" Lat: "+weather.getLatitude(), 20, 40);
text( "Weather Condition:" + weather.getWeatherCondition(), 20, 60);
text( "Condition Code:" + weather.getWeatherConditionCode(), 20, 80);
//text("WindTemp: "+weather.getWindTemperature()+" WindSpeed: "+weather.getWindSpeed()+" WindDirection: "+weather.getWindDirection(), 20, 60);
//text("Humidity: "+weather.getHumidity()+" visibility: "+weather.getVisibleDistance()+" pressure: "+weather.getPressure()+" rising: "+weather.getRising(), 20, 80);
//text("Sunrise: "+weather.getSunrise()+" sunset: "+weather.getSunset(), 20, 100);
String condition = weather.getWeatherCondition();
println(condition);
//if (condition.equals("Fair"))
if (condition.contains("Fai")){
myPort.write('1');
println("1"); //send a 1
}
else if(condition.contains("Cloudy")){
myPort.write('3');
println("3");
}
else if(condition.contains ("Rain") ||condition.contains("Storms")){
myPort.write('2');
println("2");
}
else if (key == 'p') {
myPort.write('5');
println("off");
}
}
public void keyPressed() {
if (key == 's') {
weather.setWOEID(12798949); //seattle
}
if (key == 'r') {
weather.setWOEID(44418); //London
}
if (key == 'm') {
weather.setWOEID (90897019); //Mawsynram
}
if (key == 'h'){
weather.setWOEID (2423945); //Honolulu
}
if (key == 'd') {
weather.setWOEID (23509346); //Death Valley
}
if (key == 'n'){
weather.setWOEID (2459115); //snow Solden
}
}
Arduino
#include <NS_Rainbow.h>
#include <Adafruit_NeoPixel.h>
#include <EEPROM.h> //random gen for TWINKLE
#define PIN 9
#define N_CELL 16
#define PIXEL 60 //for adafruit
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL, PIN, NEO_GRB + NEO_KHZ800);
NS_Rainbow ns_stick = NS_Rainbow(N_CELL,PIN);
byte flag_a = 1, flag_b = 0; //FOR TWINKLE
unsigned int cnt = 0, seed = 0; // seed: used to initialize random number generator
const unsigned int maxCycle = 1200; // go to next state when cnt >= maxCycle
char val; // Data received from the serial port
//int ledPin = 13; // Set the pin to digital I/O 13
int ledPin = 9;
boolean flag = true;
int time = millis();
void setup() {
//pinMode(ledPin, OUTPUT); // Set pin as OUTPUT
Serial.begin(9600); // Start serial communication at 9600 bps
ns_stick.begin();
ns_stick.setBrightness(255);
}
void loop() {
// digitalWrite(ledPin, LOW);
// if (Serial.available())
//{ // If data is available to read,
ns_stick.setBrightness(255);
Serial.read();
val = Serial.read(); // read it and store it in val
if (val == '1') { //SUNNY WEATHER
//digitalWrite(ledPin, HIGH); // turn the LED on
//ns_stick.setBrightness(255);
rainbowfade(); //Gets stuck
Serial.read();
} else if (val == '2') { //rainy Weather
raintwinkle();
Serial.read();
} else if (val == '3'){ //cloudy
adafade();
Serial.read();
} else if (val == '5'){
black();
Serial.read();
}
//delay(10); // Wait 10 milliseconds for next reading
//Serial.flush();
}
void rainbowfade() { //Sunny Weather
for(int i=0; i<2; i++) {
rainbow(30); // interval: 30ms
Serial.read();
}
}
void rainbow(uint16_t interval) { //Sunnt Weather pt.2
Serial.read();
uint16_t n = ns_stick.numCells();
for(uint16_t j=0; j<255; j++) { // one cycle j2 used to be 255
Serial.read();
for(uint16_t i=0; i<n; i++) {
Serial.read();
byte r_pos = (((i<<8) - i) / n + j) % 0xFF;
byte sect = (r_pos / 0x55) % 0x03, pos = (r_pos % 0x55) * 0x03;
Serial.read();
switch(sect) {
case 0:
Serial.read();
ns_stick.setColor(i,ns_stick.RGBtoColor(0xFF - pos, pos, 0x00)); break;
case 1:
Serial.read();
ns_stick.setColor(i,ns_stick.RGBtoColor(0x00, 0xFF - pos, pos)); break;
case 2:
Serial.read();
ns_stick.setColor(i,ns_stick.RGBtoColor(pos, 0x00, 0xFF - pos)); break;
}
Serial.read();
}
ns_stick.show();
delay(interval);
Serial.read();
//if (val !== 1) {
//break;
//}
}
}
void blue() { //Stays on color (blue)
for (int i=0; i<N_CELL; i++){
ns_stick.setColor(i, 6 , 101, 196);
ns_stick.show();
Serial.read();
}
}
void bluefade (uint16_t interval) {
uint16_t n = ns_stick.numCells();
for(uint16_t j=0; j<255; j++) { // one cycle j2 used to be 255
for(uint16_t i=0; i<n; i++) {
byte r_pos = (((i<<8) - i) / n + j) % 0xFF;
byte sect = (r_pos / 0x55) % 0x03, pos = (r_pos % 0x55) * 0x03;
switch(sect) {
case 0:
ns_stick.setColor(i,ns_stick.RGBtoColor(0xFF - pos, pos, 0x00)); break;
case 1:
ns_stick.setColor(i,ns_stick.RGBtoColor(0x00, 0xFF - pos, pos)); break;
case 2:
ns_stick.setColor(i,ns_stick.RGBtoColor(pos, 0x00, 0xFF - pos)); break;
}
}
ns_stick.show();
delay(interval);
Serial.read();
}
}
void adafade () { //Cloudy Weather
int R = 0;
int G = 0;
int B = 0;
int finCount=5;
int foutCount=5;
int Rset = 125;
int Gset = 125;
int Bset = 125;
int waitT = 5;
//Fade in
while(1){ //using an inf loop to be more custom.
//Protect the strand from higher then 255 values
if(R>255 || G>255 || B>255) { break; } //DO NOT DELETE OR ALTER THIS LINE.
//break the inf loop if the color is higher then what its set at.
if (R>Rset+1 && G>Gset+1 && B>Bset+1) {
//ReSet the RGB to set values.
R=Rset;
G=Gset;
B=Bset;
break;
}
//update the strip
for(int i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(R, G, B));
strip.show();
delay(0);
}
//increase by the set amount
R=R+finCount;
G=G+finCount;
B=B+finCount;
delay(waitT);
}
//Fade Out
while(1){ //using an inf loop to be more custom.
//Protect the strand from higher then 255 values
if(R>255 || G>255 || B>255) { break; } //DO NOT DELETE OR ALTER THIS LINE.
//break the inf loop if the color is off
if (R<100 && G<100 && B<10) {
//ReSet the RGB to 0 values.
R=100;
G=100;
B=100;
break;
}
//update the strip
for(int j=0; j<strip.numPixels(); j++) {
strip.setPixelColor(j, strip.Color(R, G, B));
strip.show();
delay(0);
Serial.read();
}
//Decrease by the set amount
R=R-foutCount;
G=G-foutCount;
B=B-foutCount;
delay(waitT);
}
}
void raintwinkle() { //for Rainy Weather
ns_stick.setBrightness(256);
for (int i = 0; i < 8; i++) {
seed += analogRead(i);
Serial.read();
}
seed += EEPROM.read(0); // get part of the seed from EEPROM
randomSeed(seed);
EEPROM.write(0, random(256));
delay(100);
ns_stick.begin();
ns_stick.clear();
ns_stick.show();
ns_stick.setBrightness(128);
unsigned char sect, color;
if(flag_a) {
sect = cnt / (maxCycle / 4);
switch(sect) {
case 0:
twinkleTwinkle(0, 1, 0); // only white
break;
case 1:
twinkleTwinkle(0, 2, 0); // white and red
break;
case 2:
twinkleTwinkle(1, 2, 0); // red, and green
break;
default:
// red, green, blue, cyan, magenta, yellow
twinkleTwinkle(1, 6, cnt > maxCycle - 100);
}
ns_stick.show();
}
}
void fade(unsigned char *val, unsigned char fadeTime) { //Twinkle pt2
if (*val) {
unsigned char subAmt = *val >> fadeTime;
if (subAmt < 1)
subAmt = 1;
*val -= subAmt;
}
}
void twinkleColorAdjust(unsigned char *color) { //Twinkle pt 3
if (*color == 255) {
*color = 254;
}
else if (*color % 2) {
*color = *color * 2 + 1;
}
else if (*color > 0) {
fade(color, 4);
if (*color % 2) {
(*color)--;
}
}
}
//Twinkle pt4
void twinkleTwinkle(unsigned char minVal, unsigned char numColors, unsigned char noNewBursts) {
for (unsigned int i = 0; i < N_CELL; i++) {
uint16_t base = i * 3;
twinkleColorAdjust((ns_stick.getCellsAddr()+base));
twinkleColorAdjust((ns_stick.getCellsAddr()+base+2));
twinkleColorAdjust((ns_stick.getCellsAddr()+base+1));
}
if (noNewBursts) return;
for (unsigned int i = 0; i < 4; i++) {
int j = random(N_CELL);
uint32_t color = ns_stick.getColor(j);
if (color) break;
switch (random(numColors) + minVal) {
case 0:
ns_stick.setColor(j, 80, 100, 182); // white RAINY COLOR
break;
case 1:
ns_stick.setColor(j, 255, 0, 0); // red
break;
case 2:
ns_stick.setColor(j, 0, 255, 0); // green
break;
case 3:
ns_stick.setColor(j, 0, 0, 255); // blue
break;
case 4:
ns_stick.setColor(j, 255, 255, 0); // yellow
break;
case 5:
ns_stick.setColor(j, 0, 255, 255); // cyan
break;
case 6:
ns_stick.setColor(j, 255, 0, 255); // magenta
break;
default:
ns_stick.setColor(j, 255, 255, 255); // white
}
}
}
void stick() {
unsigned int t = 500; // t: delay time
Serial.read();
ns_stick.setColor(0, 255, 0, 0); // Red
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(0, 0, 0, 0); // Black (clear)
ns_stick.setColor(1, 162, 93, 0); //
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(1, 0, 0, 0); // Black (clear)
ns_stick.setColor(2, 66, 189, 0); //
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(2, 0, 0, 0); // Black (clear)
ns_stick.setColor(3, 0, 255, 30); //
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(3, 0, 0, 0); // Black (clear)
ns_stick.setColor(4, 0, 129, 126); //
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(4, 0, 0, 0); // Black (clear)
ns_stick.setColor(5, 0, 33, 222); //
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(5, 0, 0, 0); // Black (clear)
ns_stick.setColor(6, 63, 0, 192); //
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(6, 0, 0, 0); // Black (clear)
ns_stick.setColor(7, 159, 0, 96); //
ns_stick.show();
Serial.read();
delay(t);
ns_stick.setColor(7, 0, 0, 0); // Black (clear)
ns_stick.show();
//delay(t);
Serial.read();
}
void black() { //Stays on black
for (int i=0; i<N_CELL; i++){
ns_stick.setColor(i, 0 , 0, 0);
ns_stick.show();
Serial.read();
}
}
//ns_stick.clear();
//ns_stick.setBrightness(0);
Soldering // Nick Ricci & Naoki Hisamoto
After having everything working together on the breadboard, we moved everything to a prototype board. We wanted everything soldered together to keep wires and components from unplugging. We spent a significant amount of time soldering to keep the wires and components in the board as well as making connections between the pieces that needed to be connected. We ran through some trouble of having solder connecting pieces that were not supposed to be connected to each other, but things eventually came together. Doing this also allowed us to condense everything so there was no wasted space in between wires and components.
Camera Trigger // Nick Ricci & Naoki Hisamoto
To trigger the camera, we dismantled a previously existing remote shutter trigger. We observed that the trigger works in two phases. First, a connection is made that activates the focus of the camera. The second connection made takes the picture. These connections are made when two metal plates touch. We simply desoldered the wires from the metal plates and replaced them with buttons on a breadboard. However, we wanted to find a way to be able to trigger the camera using the arduino. We discovered relays which were switches activated through electromagnets. We found a diagram online using a transistor to first activate the coil which flips the switch and using a diode as well to prevent any voltage to flow back into the Arduino which is a possible outcome of using relays. By doing this, we are able to code two relays to switch on one after another to simulate what the physical trigger button does.
A Little Party Never Killed Nobody (Study Party Lamp)| Angelica and Emily
The study party lamp is a lamp that recognizes voice commands and will play music and lights to bring productivity and fun to your study parties! From soldering, coding, and constructing the lamp together; it was definitely a fun and rather difficult project. We laser cut circles to build an interior structure that would hold the neopixels and arduino. Then we drilled holes on top of the lamp to connect the support structure. The support was initially held together with fish wires; however we decided to use a more sturdy wire. We ran into problems with the structure of the lamp because it caused echos; therefore we decided to rerecord the voice commands inside of the lamp to ensure that the easy vr shield would pick up the voice commands. Also, we decided to input a beep after the trigger word to alert the user that they can proceed with the next voice command to turn on the lamp.
Watch the video here: https://vimeo.com/130364599
We decided to make two boards when the lamp is used when studying and partying!
Final Deliverables//Mae and Chloe
Final Code:
#include <PCM.h>
const unsigned char sample[] PROGMEM = {
126, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 127, 128, 127, 127, 128, 128, 128, 127, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 128, 127, 128, 129, 128, 129, 128, 128, 128, 128, 129, 128, 129, 128, 128, 128, 127, 126, 126, 126, 126, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 127, 128, 128, 128, 126, 127, 127, 126, 127, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 128, 127, 128, 129, 128, 128, 129, 128, 127, 128, 128, 127, 128, 128, 127, 126, 127, 126, 125, 126, 126, 126, 125, 127, 127, 126, 128, 128, 127, 128, 129, 128, 128, 129, 129, 128, 129, 128, 128, 128, 127, 128, 128, 128, 129, 129, 128, 128, 129, 128, 127, 129, 128, 127, 128, 128, 127, 126, 127, 126, 126, 127, 127, 126, 126, 128, 127, 126, 127, 127, 126, 127, 128, 127, 128, 128, 128, 128, 128, 129, 128, 128, 129, 128, 129, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 128, 128, 127, 127, 128, 128, 128, 129, 128, 127, 128, 127, 126, 127, 127, 127, 126, 128, 127, 126, 128, 127, 126, 127, 127, 128, 127, 128, 129, 128, 128, 129, 129, 129, 130, 129, 128, 128, 128, 126, 126, 126, 125, 126, 126, 127, 127, 127, 128, 127, 128, 127, 127, 130, 127, 129, 130, 128, 129, 128, 128, 127, 128, 129, 126, 128, 128, 127, 127, 127, 128, 126, 128, 128, 126, 129, 128, 128, 128, 128, 128, 128, 129, 129, 129, 128, 129, 127, 126, 127, 125, 126, 125, 125, 126, 125, 127, 125, 127, 127, 126, 127, 127, 128, 127, 130, 129, 127, 130, 127, 128, 129, 128, 129, 128, 129, 127, 128, 127, 126, 127, 126, 127, 126, 128, 127, 127, 130, 126, 129, 129, 128, 130, 129, 129, 128, 129, 128, 127, 128, 127, 128, 127, 127, 128, 126, 128, 128, 126, 128, 127, 128, 128, 128, 129, 128, 128, 129, 127, 129, 128, 127, 129, 127, 127, 128, 126, 125, 126, 126, 124, 126, 126, 124, 127, 127, 126, 128, 128, 129, 127, 128, 130, 126, 128, 129, 127, 127, 128, 129, 127, 128, 130, 126, 128, 128, 127, 127, 128, 128, 127, 129, 129, 127, 129, 129, 128, 130, 128, 129, 130, 127, 129, 128, 127, 127, 127, 127, 125, 127, 126, 125, 127, 125, 126, 127, 127, 127, 128, 129, 127, 128, 129, 128, 129, 129, 130, 129, 130, 130, 129, 128, 128, 128, 126, 127, 128, 125, 126, 128, 124, 125, 127, 125, 126, 128, 128, 128, 129, 130, 128, 129, 129, 128, 127, 128, 129, 126, 128, 127, 125, 127, 126, 127, 126, 128, 128, 127, 129, 128, 128, 128, 128, 128, 128, 129, 128, 129, 128, 126, 126, 125, 125, 125, 127, 128, 129, 128, 130, 129, 125, 129, 125, 126, 127, 125, 129, 125, 127, 129, 123, 126, 126, 124, 125, 127, 126, 126, 129, 129, 129, 130, 131, 133, 130, 131, 134, 128, 129, 130, 128, 127, 128, 133, 127, 128, 133, 123, 123, 122, 117, 116, 117, 120, 120, 125, 128, 132, 133, 134, 140, 134, 135, 139, 133, 133, 134, 131, 129, 129, 128, 127, 126, 125, 126, 123, 124, 124, 122, 125, 123, 126, 129, 126, 130, 132, 129, 128, 130, 129, 126, 129, 132, 127, 126, 134, 126, 118, 128, 120, 110, 122, 120, 113, 122, 129, 122, 127, 136, 130, 131, 134, 135, 132, 130, 137, 127, 129, 132, 126, 130, 124, 131, 128, 123, 135, 128, 128, 133, 133, 129, 132, 134, 124, 129, 123, 119, 120, 114, 119, 116, 120, 123, 125, 129, 130, 135, 130, 134, 133, 130, 131, 128, 131, 124, 131, 129, 123, 132, 125, 127, 127, 127, 127, 125, 129, 125, 130, 126, 128, 132, 122, 131, 128, 122, 130, 127, 125, 130, 131, 128, 131, 133, 131, 129, 131, 129, 122, 132, 125, 119, 133, 123, 121, 136, 125, 123, 137, 127, 125, 135, 129, 126, 131, 132, 126, 129, 133, 125, 128, 130, 125, 125, 128, 122, 126, 128, 119, 132, 126, 121, 133, 124, 127, 129, 128, 129, 126, 131, 129, 125, 126, 132, 120, 124, 135, 116, 129, 131, 121, 129, 126, 128, 123, 129, 127, 123, 131, 125, 128, 127, 129, 126, 127, 135, 123, 135, 133, 126, 135, 127, 129, 125, 125, 128, 120, 127, 126, 122, 128, 126, 125, 129, 128, 129, 132, 130, 131, 131, 129, 125, 126, 126, 120, 125, 127, 123, 126, 129, 128, 125, 130, 131, 127, 130, 135, 131, 130, 136, 131, 127, 132, 130, 126, 128, 130, 127, 128, 128, 130, 126, 125, 129, 124, 125, 125, 124, 123, 120, 126, 121, 121, 126, 124, 129, 128, 131, 133, 126, 129, 129, 121, 121, 125, 118, 117, 122, 118, 118, 120, 124, 122, 126, 135, 132, 140, 145, 145, 150, 149, 151, 151, 149, 147, 145, 144, 137, 134, 132, 124, 122, 121, 119, 117, 117, 121, 116, 116, 123, 114, 114, 118, 111, 112, 113, 111, 110, 110, 110, 107, 109, 108, 107, 112, 109, 112, 119, 120, 124, 137, 144, 147, 166, 172, 171, 186, 183, 173, 175, 163, 145, 139, 126, 106, 105, 93, 78, 85, 75, 72, 80, 77, 84, 93, 101, 110, 123, 134, 144, 157, 164, 173, 181, 182, 184, 186, 179, 170, 171, 157, 144, 147, 127, 121, 119, 104, 104, 96, 91, 94, 85, 89, 93, 91, 97, 105, 107, 113, 121, 124, 131, 134, 140, 145, 144, 151, 151, 149, 152, 148, 150, 146, 143, 148, 141, 140, 142, 135, 132, 128, 123, 117, 110, 108, 103, 98, 99, 96, 94, 97, 96, 97, 101, 103, 107, 114, 118, 121, 133, 134, 137, 151, 146, 150, 160, 151, 153, 155, 147, 147, 146, 142, 145, 145, 143, 150, 148, 143, 150, 140, 134, 136, 122, 119, 115, 103, 104, 97, 90, 96, 90, 89, 100, 98, 102, 115, 113, 123, 127, 126, 137, 130, 133, 141, 131, 138, 141, 135, 145, 146, 145, 156, 157, 158, 169, 166, 165, 174, 162, 157, 158, 143, 132, 126, 113, 97, 91, 80, 66, 69, 61, 61, 74, 73, 89, 101, 110, 125, 131, 142, 144, 148, 152, 146, 150, 148, 144, 144, 148, 148, 147, 161, 160, 165, 179, 171, 177, 180, 163, 161, 152, 130, 120, 107, 84, 76, 66, 51, 52, 51, 50, 63, 70, 83, 102, 111, 126, 145, 145, 153, 164, 154, 158, 157, 147, 147, 143, 139, 139, 143, 148, 151, 163, 170, 176, 182, 184, 184, 175, 166, 154, 136, 119, 100, 82, 66, 51, 45, 37, 37, 48, 52, 65, 88, 100, 118, 134, 146, 157, 160, 164, 162, 161, 156, 144, 151, 140, 135, 149, 141, 150, 165, 164, 179, 187, 190, 193, 193, 185, 175, 164, 140, 125, 107, 78, 62, 50, 34, 24, 27, 33, 35, 53, 73, 87, 109, 125, 143, 155, 158, 170, 167, 161, 165, 150, 145, 143, 130, 139, 132, 132, 159, 149, 161, 191, 181, 193, 206, 191, 192, 182, 157, 146, 122, 95, 77, 56, 42, 28, 22, 26, 26, 40, 57, 69, 94, 115, 131, 149, 163, 173, 176, 171, 173, 165, 146, 146, 136, 127, 128, 129, 141, 144, 163, 181, 180, 211, 208, 200, 218, 189, 174, 162, 127, 108, 80, 56, 38, 21, 17, 11, 16, 33, 44, 64, 92, 110, 133, 151, 159, 175, 171, 165, 167, 151, 145, 135, 126, 130, 126, 127, 144, 157, 162, 188, 203, 201, 226, 220, 206, 211, 184, 158, 139, 108, 78, 52, 31, 9, 3, 1, 0, 18, 39, 53, 83, 114, 133, 154, 169, 179, 182, 175, 174, 162, 150, 143, 128, 127, 124, 124, 138, 144, 162, 186, 195, 208, 229, 226, 215, 217, 192, 163, 143, 104, 76, 48, 21, 4, 0, 0, 0, 11, 43, 57, 86, 120, 138, 158, 174, 181, 180, 179, 174, 153, 148, 142, 117, 125, 124, 114, 149, 144, 160, 209, 191, 220, 246, 216, 234, 215, 180, 175, 131, 96, 72, 42, 15, 0, 0, 0, 0, 22, 32, 55, 99, 112, 136, 166, 173, 179, 184, 181, 168, 160, 148, 130, 130, 122, 112, 132, 142, 150, 175, 199, 215, 222, 235, 240, 219, 205, 189, 148, 116, 90, 45, 18, 4, 0, 0, 0, 0, 27, 54, 80, 120, 144, 162, 180, 191, 193, 178, 175, 167, 139, 131, 120, 114, 115, 110, 138, 150, 159, 202, 210, 221, 246, 235, 227, 217, 191, 161, 122, 92, 58, 23, 0, 0, 0, 0, 0, 27, 54, 80, 113, 145, 166, 177, 190, 193, 183, 174, 159, 145, 126, 114, 112, 99, 112, 132, 132, 167, 194, 204, 232, 236, 242, 242, 210, 197, 168, 120, 92, 52, 20, 0, 0, 0, 0, 0, 26, 52, 89, 122, 147, 171, 187, 196, 190, 183, 175, 151, 138, 119, 104, 110, 98, 107, 139, 143, 172, 209, 216, 241, 255, 243, 238, 222, 187, 152, 112, 78, 39, 1, 0, 0, 0, 0, 6, 34, 64, 96, 133, 156, 174, 190, 189, 187, 178, 157, 148, 127, 111, 114, 99, 105, 132, 138, 160, 194, 218, 233, 240, 255, 251, 220, 213, 178, 132, 100, 59, 26, 0, 0, 0, 0, 0, 17, 38, 76, 108, 134, 165, 174, 185, 198, 178, 164, 168, 143, 115, 121, 116, 101, 116, 135, 150, 174, 196, 223, 241, 243, 249, 244, 215, 191, 163, 115, 75, 50, 9, 0, 0, 0, 0, 2, 24, 65, 95, 117, 157, 181, 180, 189, 199, 178, 158, 159, 132, 114, 118, 102, 111, 127, 132, 167, 183, 203, 240, 234, 242, 252, 219, 202, 173, 129, 101, 53, 19, 6, 0, 0, 0, 0, 15, 50, 83, 112, 147, 169, 181, 196, 193, 183, 175, 156, 142, 127, 110, 108, 110, 112, 124, 149, 171, 187, 214, 234, 239, 242, 235, 217, 190, 159, 122, 81, 51, 22, 0, 0, 0, 0, 2, 28, 61, 91, 119, 151, 172, 183, 188, 186, 182, 165, 146, 139, 123, 107, 111, 112, 113, 138, 159, 171, 203, 227, 233, 244, 244, 233, 212, 176, 150, 116, 67, 37, 17, 0, 0, 0, 0, 8, 39, 68, 100, 131, 152, 174, 183, 183, 184, 171, 157, 144, 132, 121, 103, 114, 123, 112, 143, 170, 174, 203, 223, 234, 239, 230, 228, 202, 172, 149, 104, 79, 49, 12, 11, 0, 0, 13, 15, 37, 78, 95, 118, 147, 164, 170, 172, 176, 167, 154, 142, 133, 126, 111, 111, 121, 121, 138, 157, 172, 199, 211, 225, 238, 228, 226, 211, 178, 159, 126, 87, 62, 35, 15, 2, 0, 6, 19, 33, 61, 90, 112, 133, 155, 168, 172, 174, 169, 160, 152, 135, 125, 121, 110, 113, 119, 124, 145, 160, 174, 200, 209, 219, 225, 215, 211, 192, 163, 146, 115, 85, 63, 39, 29, 20, 15, 27, 39, 55, 74, 96, 119, 132, 146, 159, 162, 163, 160, 155, 146, 137, 131, 119, 119, 121, 114, 130, 140, 147, 170, 176, 189, 205, 199, 201, 198, 185, 170, 147, 134, 109, 82, 74, 53, 42, 45, 36, 48, 61, 66, 87, 102, 115, 131, 141, 150, 155, 157, 155, 149, 146, 138, 128, 125, 123, 123, 123, 131, 142, 147, 159, 170, 177, 186, 183, 185, 185, 171, 163, 151, 132, 121, 102, 89, 82, 68, 64, 64, 60, 68, 73, 77, 90, 99, 108, 119, 127, 136, 141, 142, 146, 147, 145, 142, 143, 145, 141, 143, 147, 148, 152, 153, 157, 164, 160, 164, 167, 158, 159, 153, 141, 139, 126, 116, 109, 97, 93, 85, 77, 80, 78, 77, 82, 89, 97, 101, 110, 120, 125, 129, 132, 142, 140, 138, 150, 145, 143, 153, 145, 147, 152, 145, 150, 149, 146, 151, 146, 146, 147, 143, 142, 138, 139, 138, 127, 130, 128, 115, 114, 111, 103, 99, 95, 94, 92, 91, 94, 95, 99, 105, 110, 117, 124, 130, 137, 140, 144, 148, 147, 144, 146, 144, 139, 140, 140, 138, 139, 140, 143, 146, 145, 149, 152, 148, 147, 145, 137, 132, 127, 117, 111, 108, 102, 98, 99, 99, 101, 103, 107, 112, 115, 118, 122, 125, 127, 127, 129, 129, 128, 129, 130, 130, 132, 133, 134, 136, 138, 139, 139, 141, 141, 140, 139, 140, 138, 134, 135, 134, 132, 133, 132, 131, 132, 130, 129, 128, 125, 123, 121, 117, 116, 116, 113, 112, 115, 113, 113, 118, 117, 119, 121, 120, 123, 122, 120, 124, 123, 122, 126, 126, 129, 133, 134, 138, 140, 142, 146, 145, 145, 147, 145, 142, 142, 140, 136, 134, 133, 130, 128, 128, 126, 124, 123, 121, 120, 117, 114, 114, 111, 109, 110, 109, 109, 112, 114, 116, 120, 123, 126, 129, 131, 134, 135, 135, 136, 136, 135, 136, 137, 137, 137, 138, 139, 139, 140, 139, 139, 137, 135, 133, 129, 126, 124, 121, 119, 118, 117, 118, 119, 119, 122, 123, 124, 127, 127, 127, 128, 127, 126, 125, 124, 122, 122, 121, 122, 123, 123, 125, 127, 128, 130, 131, 132, 133, 132, 132, 131, 130, 129, 128, 127, 126, 127, 126, 127, 129, 130, 131, 133, 134, 134, 136, 135, 135, 135, 134, 132, 131, 129, 127, 126, 125, 123, 122, 123, 121, 121, 123, 122, 123, 125, 124, 124, 125, 124, 124, 123, 122, 121, 121, 120, 121, 121, 122, 124, 126, 129, 131, 133, 135, 136, 137, 138, 137, 136, 134, 133, 131, 128, 127, 125, 124, 125, 124, 125, 128, 129, 130, 134, 134, 135, 136, 134, 133, 132, 128, 126, 123, 122, 120, 118, 119, 119, 120, 123, 123, 125, 129, 128, 129, 131, 128, 129, 129, 126, 127, 127, 125, 126, 127, 127, 128, 129, 130, 130, 131, 132, 130, 131, 129, 127, 127, 124, 123, 124, 120, 122, 122, 120, 124, 124, 122, 128, 127, 126, 132, 129, 130, 135, 131, 133, 135, 131, 133, 132, 129, 131, 129, 128, 130, 127, 130, 130, 128, 132, 131, 130, 133, 129, 129, 129, 124, 124, 122, 119, 120, 117, 118, 120, 117, 122, 124, 120, 127, 126, 121, 129, 124, 121, 129, 124, 125, 133, 129, 134, 140, 138, 143, 146, 143, 146, 143, 140, 139, 132, 130, 128, 119, 121, 118, 112, 117, 115, 112, 120, 120, 122, 131, 133, 136, 144, 144, 145, 147, 142, 138, 133, 124, 117, 109, 102, 99, 95, 96, 99, 101, 109, 116, 120, 128, 132, 132, 136, 135, 131, 132, 129, 126, 130, 128, 131, 137, 138, 144, 149, 149, 153, 154, 150, 151, 146, 140, 138, 132, 125, 123, 118, 113, 113, 111, 110, 112, 113, 115, 120, 123, 128, 131, 135, 139, 138, 140, 140, 135, 135, 132, 124, 125, 124, 116, 121, 121, 115, 122, 121, 116, 122, 117, 113, 117, 112, 112, 115, 112, 119, 122, 122, 132, 131, 132, 141, 133, 134, 139, 126, 131, 133, 122, 131, 134, 127, 140, 142, 140, 151, 149, 148, 153, 147, 146, 144, 137, 137, 131, 127, 128, 120, 120, 120, 113, 115, 112, 107, 110, 106, 105, 107, 105, 109, 110, 110, 118, 117, 120, 128, 123, 128, 133, 126, 132, 134, 126, 133, 133, 128, 136, 135, 134, 142, 140, 142, 148, 145, 147, 149, 145, 146, 145, 142, 141, 139, 136, 134, 133, 130, 127, 127, 122, 117, 119, 111, 108, 111, 102, 102, 107, 99, 104, 109, 105, 112, 117, 115, 122, 125, 126, 131, 132, 135, 136, 137, 141, 140, 141, 145, 140, 142, 144, 138, 139, 139, 132, 133, 131, 126, 126, 123, 121, 120, 119, 119, 118, 119, 121, 120, 124, 127, 127, 132, 134, 135, 138, 137, 138, 138, 134, 135, 132, 128, 131, 126, 124, 128, 122, 121, 126, 118, 119, 122, 114, 116, 118, 112, 114, 116, 113, 115, 118, 119, 120, 124, 127, 127, 132, 136, 135, 140, 144, 141, 146, 149, 145, 148, 149, 145, 147, 147, 143, 144, 142, 137, 137, 133, 127, 126, 118, 114, 113, 105, 105, 107, 101, 107, 111, 107, 116, 119, 113, 122, 120, 112, 119, 113, 106, 114, 109, 108, 118, 117, 122, 134, 135, 142, 149, 150, 156, 156, 154, 157, 153, 151, 151, 145, 143, 141, 134, 132, 129, 121, 120, 117, 112, 113, 114, 113, 117, 121, 122, 128, 131, 130, 134, 133, 126, 128, 124, 116, 119, 114, 110, 119, 114, 116, 130, 126, 130, 145, 139, 142, 154, 144, 145, 153, 141, 140, 145, 130, 127, 129, 114, 108, 111, 98, 95, 102, 95, 97, 109, 107, 114, 126, 123, 128, 136, 129, 130, 130, 123, 122, 120, 118, 124, 126, 133, 147, 153, 166, 181, 184, 191, 196, 186, 180, 171, 149, 135, 121, 97, 86, 80, 65, 66, 73, 70, 81, 94, 96, 107, 117, 117, 122, 124, 121, 120, 119, 118, 116, 116, 121, 120, 124, 133, 131, 140, 149, 145, 158, 167, 161, 178, 183, 176, 190, 186, 174, 180, 164, 147, 145, 122, 108, 106, 88, 85, 89, 81, 88, 96, 93, 99, 103, 101, 100, 97, 96, 91, 87, 91, 92, 94, 103, 109, 119, 131, 137, 147, 161, 163, 169, 183, 184, 183, 196, 194, 187, 194, 181, 166, 164, 139, 116, 113, 88, 71, 77, 68, 69, 84, 89, 103, 117, 121, 131, 135, 129, 125, 119, 113, 102, 95, 100, 94, 93, 107, 110, 117, 129, 134, 145, 152, 154, 165, 168, 172, 180, 178, 187, 188, 178, 185, 174, 152, 150, 127, 103, 100, 75, 65, 75, 62, 70, 94, 92, 106, 127, 126, 130, 135, 129, 125, 120, 112, 109, 108, 107, 107, 116, 122, 121, 136, 141, 137, 151, 152, 145, 161, 159, 153, 171, 168, 164, 179, 170, 162, 165, 144, 129, 123, 95, 82, 82, 65, 65, 81, 82, 91, 112, 118, 125, 134, 132, 132, 127, 118, 116, 111, 104, 108, 111, 113, 122, 128, 136, 144, 145, 153, 158, 152, 159, 164, 156, 165, 172, 165, 173, 177, 164, 166, 157, 133, 126, 111, 85, 80, 73, 60, 69, 77, 82, 101, 112, 120, 135, 135, 132, 134, 126, 117, 114, 108, 106, 106, 109, 120, 123, 128, 144, 146, 145, 156, 156, 150, 156, 155, 152, 159, 159, 162, 172, 165, 163, 168, 149, 133, 129, 103, 84, 81, 66, 62, 73, 74, 88, 107, 113, 127, 136, 133, 136, 131, 120, 118, 113, 105, 108, 114, 116, 121, 135, 142, 141, 150, 155, 148, 151, 149, 145, 151, 147, 150, 165, 161, 164, 178, 170, 163, 160, 142, 128, 112, 92, 83, 75, 68, 73, 81, 91, 100, 108, 122, 125, 120, 123, 121, 112, 107, 106, 108, 108, 110, 123, 132, 135, 142, 152, 156, 151, 151, 157, 148, 140, 149, 148, 147, 157, 162, 169, 176, 170, 169, 166, 146, 129, 117, 97, 81, 74, 70, 73, 79, 86, 101, 114, 115, 119, 127, 120, 110, 108, 106, 99, 96, 103, 112, 115, 124, 140, 146, 149, 155, 157, 155, 150, 148, 150, 145, 146, 156, 159, 165, 176, 176, 175, 174, 160, 146, 131, 111, 97, 85, 76, 79, 80, 84, 98, 106, 110, 119, 122, 118, 115, 113, 109, 104, 105, 107, 109, 114, 122, 126, 132, 138, 141, 142, 142, 143, 143, 141, 143, 149, 150, 154, 166, 171, 171, 176, 177, 167, 156, 146, 130, 113, 100, 92, 86, 81, 86, 93, 97, 104, 113, 115, 115, 115, 113, 109, 105, 104, 105, 104, 107, 116, 121, 125, 133, 140, 141, 142, 143, 143, 141, 138, 141, 148, 149, 154, 169, 178, 177, 180, 184, 175, 155, 142, 131, 109, 86, 83, 85, 75, 75, 95, 106, 101, 109, 126, 122, 108, 112, 120, 107, 98, 111, 119, 111, 114, 131, 134, 126, 130, 139, 134, 126, 132, 140, 139, 143, 157, 169, 176, 184, 191, 194, 188, 176, 162, 147, 128, 107, 92, 86, 81, 75, 80, 93, 97, 96, 106, 115, 109, 101, 106, 109, 100, 97, 110, 117, 112, 116, 131, 133, 123, 127, 138, 134, 124, 134, 149, 148, 147, 169, 187, 183, 185, 203, 204, 182, 170, 170, 147, 111, 101, 99, 78, 63, 76, 88, 82, 87, 110, 115, 103, 107, 115, 104, 91, 97, 104, 98, 102, 120, 125, 125, 136, 143, 137, 133, 139, 136, 127, 134, 148, 150, 158, 181, 196, 197, 200, 209, 199, 172, 157, 143, 112, 85, 77, 74, 64, 65, 85, 100, 103, 113, 124, 122, 110, 101, 98, 86, 77, 83, 93, 102, 114, 132, 147, 150, 150, 152, 143, 132, 129, 130, 132, 138, 156, 175, 187, 201, 214, 214, 204, 189, 168, 138, 106, 85, 66, 53, 55, 65, 78, 94, 112, 125, 129, 131, 129, 116, 102, 95, 87, 82, 87, 101, 114, 124, 138, 150, 148, 146, 143, 135, 127, 121, 123, 130, 142, 161, 179, 198, 215, 217, 208, 197, 176, 146, 115, 96, 80, 59, 55, 68, 77, 84, 103, 125, 130, 124, 127, 126, 109, 96, 96, 97, 92, 93, 110, 122, 125, 135, 146, 148, 139, 131, 131, 127, 123, 132, 150, 168, 180, 193, 209, 209, 196, 187, 172, 145, 113, 91, 79, 60, 51, 66, 82, 92, 107, 128, 140, 133, 130, 134, 124, 106, 100, 102, 99, 92, 101, 119, 123, 122, 131, 138, 131, 117, 121, 127, 121, 125, 148, 168, 178, 193, 216, 224, 210, 201, 187, 155, 119, 94, 75, 55, 46, 58, 69, 81, 104, 123, 131, 137, 140, 134, 118, 109, 107, 94, 89, 101, 110, 113, 121, 138, 143, 133, 135, 138, 126, 118, 122, 131, 137, 148, 176, 197, 206, 217, 219, 206, 181, 151, 123, 90, 62, 51, 47, 51, 65, 86, 110, 127, 139, 151, 147, 136, 124, 111, 102, 92, 93, 103, 107, 114, 125, 131, 134, 133, 134, 135, 126, 123, 124, 126, 135, 148, 167, 188, 201, 209, 209, 198, 184, 159, 134, 113, 88, 69, 57, 54, 60, 68, 86, 108, 119, 129, 136, 136, 134, 127, 124, 122, 116, 115, 115, 114, 120, 123, 125, 130, 130, 130, 126, 126, 133, 133, 138, 149, 153, 158, 161, 167, 173, 172, 174, 170, 156, 143, 126, 106, 94, 85, 82, 80, 83, 95, 101, 106, 119, 128, 130, 128, 128, 129, 120, 115, 120, 121, 119, 119, 120, 124, 121, 122, 130, 134, 137, 136, 137, 141, 137, 137, 147, 154, 159, 160, 162, 165, 156, 147, 144, 137, 128, 117, 110, 107, 97, 93, 97, 100, 105, 108, 114, 122, 120, 121, 123, 121, 121, 118, 117, 120, 118, 121, 124, 124, 131, 131, 129, 132, 134, 137, 135, 136, 145, 144, 139, 145, 151, 153, 149, 154, 163, 153, 143, 144, 138, 124, 113, 112, 112, 99, 95, 101, 100, 100, 103, 111, 118, 117, 120, 125, 121, 122, 121, 119, 122, 120, 121, 122, 123, 130, 132, 133, 141, 143, 142, 140, 140, 146, 145, 145, 154, 156, 154, 151, 149, 151, 142, 134, 134, 127, 115, 104, 98, 100, 95, 96, 107, 113, 114, 111, 112, 119, 114, 113, 122, 127, 127, 122, 123, 126, 119, 116, 124, 129, 130, 130, 135, 141, 136, 136, 147, 154, 159, 164, 174, 181, 173, 165, 158, 141, 124, 107, 98, 94, 85, 88, 95, 99, 104, 106, 114, 118, 115, 117, 121, 121, 122, 124, 125, 126, 118, 116, 116, 109, 110, 114, 120, 130, 129, 138, 149, 153, 168, 176, 189, 201, 196, 193, 180, 159, 140, 114, 100, 87, 74, 74, 77, 82, 87, 96, 109, 117, 117, 119, 124, 119, 115, 116, 118, 121, 117, 122, 127, 118, 117, 118, 122, 117, 105, 115, 128, 137, 154, 179, 215, 233, 236, 239, 222, 186, 141, 105, 82, 54, 45, 60, 77, 91, 99, 115, 122, 111, 103, 103, 102, 98, 98, 106, 114, 118, 123, 129, 123, 119, 121, 118, 121, 115, 112, 116, 117, 135, 156, 179, 214, 242, 255, 255, 230, 198, 150, 97, 65, 50, 57, 70, 83, 111, 118, 107, 96, 88, 86, 77, 86, 112, 124, 122, 121, 131, 126, 112, 109, 112, 113, 103, 107, 123, 129, 132, 131, 137, 145, 150, 168, 199, 238, 255, 253, 230, 192, 140, 83, 54, 60, 79, 94, 106, 119, 116, 92, 74, 69, 76, 90, 103, 121, 125, 124, 130, 124, 121, 112, 110, 120, 103, 97, 99, 110, 126, 122, 138, 146, 144, 161, 189, 228, 239, 239, 240, 211, 161, 109, 89, 79, 72, 90, 114, 129, 111, 91, 84, 66, 66, 74, 96, 126, 128, 133, 131, 119, 118, 102, 105, 116, 110, 116, 113, 119, 125, 114, 128, 131, 128, 140, 161, 207, 227, 229, 228, 204, 178, 142, 119, 108, 97, 98, 100, 108, 108, 97, 86, 79, 86, 92, 102, 110, 118, 126, 123, 117, 106, 105, 115, 121, 119, 111, 110, 110, 113, 111, 111, 115, 121, 143, 161, 193, 236, 253, 249, 216, 180, 141, 93, 84, 100, 111, 117, 118, 123, 111, 76, 67, 74, 82, 102, 114, 132, 132, 115, 116, 112, 117, 118, 106, 107, 103, 100, 101, 108, 132, 143, 132, 122, 128, 148, 185, 222, 249, 251, 220, 190, 140, 89, 70, 81, 119, 130, 130, 134, 118, 97, 70, 74, 86, 87, 99, 115, 135, 116, 97, 102, 102, 115, 110, 122, 126, 101, 118, 130, 130, 126, 111, 135, 135, 139, 197, 230, 250, 241, 210, 187, 118, 85, 97, 98, 119, 126, 140, 132, 87, 78, 72, 74, 78, 90, 114, 112, 113, 114, 124, 121, 99, 104, 104, 123, 123, 111, 133, 131, 136, 125, 112, 132, 130, 166, 216, 239, 245, 206, 184, 164, 114, 90, 94, 124, 141, 112, 101, 110, 97, 80, 69, 90, 112, 99, 102, 115, 118, 114, 111, 116, 115, 108, 108, 113, 104, 115, 133, 127, 129, 124, 136, 141, 141, 188, 209, 215, 218, 210, 201, 146, 119, 123, 116, 118, 110, 116, 106, 77, 80, 85, 87, 90, 91, 105, 104, 94, 112, 123, 124, 118, 102, 113, 109, 100, 115, 123, 139, 145, 147, 148, 139, 150, 180, 209, 201, 196, 191, 172, 168, 144, 143, 131, 100, 110, 91, 81, 87, 83, 101, 89, 87, 105, 101, 103, 104, 112, 117, 110, 105, 103, 111, 117, 135, 154, 141, 126, 113, 121, 146, 129, 147, 193, 210, 222, 186, 179, 178, 129, 131, 127, 127, 126, 104, 119, 102, 89, 95, 98, 98, 72, 84, 88, 99, 115, 105, 133, 117, 111, 123, 96, 121, 123, 124, 147, 115, 123, 133, 130, 156, 159, 195, 235, 215, 199, 180, 160, 142, 109, 114, 134, 129, 120, 104, 92, 78, 66, 68, 81, 97, 106, 109, 107, 113, 109, 106, 105, 105, 121, 112, 125, 131, 129, 157, 126, 119, 125, 144, 215, 189, 193, 220, 206, 217, 148, 120, 124, 87, 115, 113, 118, 137, 110, 109, 84, 57, 69, 69, 89, 107, 105, 111, 108, 107, 104, 101, 118, 126, 124, 117, 126, 145, 147, 156, 154, 165, 187, 196, 217, 209, 202, 180, 127, 108, 98, 112, 121, 111, 122, 116, 108, 103, 85, 82, 88, 92, 99, 91, 81, 99, 100, 113, 127, 108, 119, 103, 95, 118, 114, 152, 164, 165, 207, 202, 198, 192, 187, 213, 185, 134, 115, 101, 112, 118, 104, 120, 121, 108, 87, 55, 77, 103, 109, 114, 105, 113, 99, 92, 112, 118, 126, 106, 97, 111, 114, 128, 137, 153, 188, 185, 177, 202, 207, 199, 161, 132, 158, 127, 100, 121, 124, 136, 98, 80, 113, 91, 81, 91, 98, 118, 107, 104, 128, 122, 108, 111, 100, 101, 94, 89, 129, 143, 135, 135, 144, 187, 221, 217, 199, 184, 168, 159, 129, 92, 117, 129, 127, 123, 95, 107, 93, 75, 105, 97, 99, 114, 107, 113, 102, 108, 138, 115, 92, 103, 96, 96, 101, 126, 165, 152, 157, 191, 204, 203, 201, 212, 194, 147, 110, 112, 119, 103, 117, 131, 115, 90, 69, 91, 108, 90, 95, 104, 98, 105, 101, 110, 122, 98, 107, 108, 101, 131, 127, 137, 145, 147, 186, 195, 208, 214, 195, 176, 141, 126, 125, 138, 140, 117, 111, 100, 99, 87, 81, 110, 108, 97, 99, 100, 105, 89, 87, 113, 120, 126, 132, 118, 107, 104, 114, 127, 134, 170, 217, 228, 201, 173, 165, 162, 151, 134, 138, 133, 110, 99, 91, 111, 117, 110, 113, 88, 74, 67, 88, 126, 123, 124, 121, 119, 109, 82, 92, 120, 138, 129, 113, 134, 177, 206, 214, 226, 213, 171, 127, 109, 136, 132, 123, 135, 124, 110, 83, 82, 105, 91, 94, 103, 102, 106, 100, 106, 103, 87, 102, 120, 125, 114, 108, 131, 141, 141, 147, 183, 234, 223, 197, 175, 161, 157, 118, 124, 137, 120, 123, 106, 105, 96, 80, 105, 101, 82, 80, 85, 95, 89, 90, 112, 130, 121, 115, 119, 125, 130, 116, 128, 165, 192, 205, 208, 217, 207, 170, 140, 133, 128, 114, 125, 131, 112, 91, 79, 98, 100, 83, 90, 87, 90, 98, 87, 100, 117, 129, 135, 104, 107, 133, 128, 123, 121, 150, 188, 207, 225, 212, 182, 160, 155, 139, 116, 130, 139, 132, 101, 81, 102, 89, 82, 83, 71, 81, 87, 111, 125, 107, 116, 129, 118, 99, 101, 134, 150, 130, 121, 158, 198, 214, 211, 199, 185, 150, 117, 125, 141, 147, 141, 125, 116, 93, 72, 84, 90, 91, 78, 72, 91, 100, 109, 117, 124, 130, 116, 111, 116, 123, 126, 125, 151, 180, 197, 203, 202, 199, 171, 132, 111, 119, 140, 156, 152, 131, 116, 98, 88, 77, 66, 83, 91, 99, 103, 96, 111, 116, 115, 111, 93, 110, 131, 137, 139, 134, 163, 191, 194, 201, 194, 185, 156, 115, 117, 129, 142, 139, 123, 124, 102, 82, 84, 96, 115, 99, 94, 99, 94, 97, 99, 121, 128, 111, 112, 114, 122, 126, 139, 179, 201, 204, 193, 180, 175, 147, 117, 113, 130, 145, 129, 114, 123, 120, 98, 81, 83, 87, 77, 83, 111, 119, 113, 116, 125, 120, 101, 105, 126, 133, 139, 151, 171, 195, 207, 210, 183, 152, 145, 133, 122, 116, 125, 138, 122, 112, 99, 88, 94, 90, 88, 74, 77, 106, 106, 108, 114, 123, 129, 118, 132, 137, 126, 136, 148, 167, 174, 188, 217, 207, 180, 149, 123, 110, 98, 114, 130, 128, 127, 112, 95, 72, 61, 80, 96, 106, 103, 99, 110, 115, 118, 119, 125, 133, 124, 118, 134, 167, 195, 207, 209, 197, 173, 150, 138, 134, 129, 125, 121, 118, 106, 94, 93, 92, 87, 78, 81, 97, 96, 93, 97, 114, 127, 116, 119, 128, 128, 125, 127, 164, 197, 212, 215, 198, 185, 159, 136, 130, 124, 133, 125, 112, 114, 108, 104, 86, 77, 84, 71, 69, 77, 97, 115, 106, 112, 120, 123, 126, 119, 137, 157, 175, 196, 200, 206, 195, 174, 161, 143, 137, 130, 126, 127, 111, 103, 100, 101, 100, 84, 79, 79, 83, 87, 83, 90, 102, 113, 119, 122, 134, 141, 143, 154, 173, 187, 193, 204, 205, 181, 148, 139, 142, 128, 109, 106, 113, 112, 102, 102, 96, 89, 89, 82, 77, 79, 102, 122, 112, 110, 117, 126, 127, 121, 136, 152, 176, 202, 204, 201, 191, 176, 146, 105, 108, 124, 127, 123, 117, 122, 104, 86, 86, 83, 90, 97, 107, 111, 101, 110, 111, 105, 109, 118, 138, 143, 148, 163, 169, 181, 191, 193, 183, 159, 142, 122, 107, 110, 118, 127, 126, 117, 105, 90, 89, 95, 94, 94, 102, 111, 108, 101, 105, 115, 118, 121, 131, 147, 165, 176, 185, 187, 182, 177, 161, 145, 129, 119, 120, 117, 119, 121, 119, 119, 105, 95, 89, 86, 93, 93, 99, 105, 104, 110, 106, 111, 123, 136, 155, 159, 174, 189, 187, 182, 168, 164, 152, 131, 126, 122, 125, 122, 113, 115, 107, 104, 98, 91, 98, 100, 98, 90, 88, 101, 101, 103, 116, 136, 154, 155, 163, 179, 184, 181, 170, 167, 160, 146, 135, 127, 126, 122, 116, 113, 109, 106, 102, 101, 101, 97, 93, 92, 96, 98, 98, 103, 112, 130, 141, 152, 166, 181, 188, 173, 161, 163, 162, 151, 134, 134, 133, 116, 108, 107, 111, 103, 94, 102, 100, 99, 106, 111, 111, 97, 96, 104, 106, 123, 142, 162, 174, 177, 182, 169, 158, 155, 146, 139, 132, 139, 141, 124, 114, 105, 100, 95, 91, 98, 99, 105, 113, 108, 107, 109, 116, 116, 111, 129, 151, 165, 171, 171, 172, 161, 150, 146, 138, 136, 134, 132, 126, 115, 113, 112, 108, 102, 99, 105, 110, 112, 112, 110, 112, 112, 111, 115, 122, 134, 147, 160, 168, 168, 166, 161, 148, 131, 123, 129, 134, 127, 123, 127, 123, 109, 100, 106, 113, 108, 107, 115, 123, 119, 114, 121, 129, 129, 127, 132, 143, 147, 144, 147, 153, 154, 144, 133, 130, 124, 119, 118, 120, 123, 119, 114, 113, 113, 115, 117, 123, 128, 127, 127, 128, 131, 131, 130, 134, 138, 138, 137, 139, 140, 134, 126, 126, 127, 123, 121, 123, 124, 119, 114, 117, 119, 118, 121, 127, 132, 129, 127, 130, 129, 128, 129, 137, 145, 146, 147, 144, 138, 130, 123, 122, 119, 118, 120, 117, 116, 115, 117, 119, 116, 116, 116, 113, 113, 118, 134, 144, 149, 159, 163, 159, 143, 132, 132, 126, 120, 116, 121, 127, 122, 117, 116, 120, 120, 113, 114, 120, 125, 123, 120, 128, 134, 132, 129, 132, 142, 138, 130, 130, 134, 133, 123, 125, 134, 135, 131, 129, 133, 132, 122, 119, 118, 120, 119, 119, 124, 127, 128, 128, 126, 127, 125, 126, 128, 129, 134, 134, 134, 132, 131, 130, 126, 126, 130, 132, 132, 129, 131, 129, 121, 118, 118, 121, 121, 121, 127, 129, 129, 127, 128, 131, 130, 129, 129, 130, 130, 128, 129, 131, 131, 131, 128, 127, 127, 127, 127, 127, 129, 130, 127, 125, 122, 122, 121, 121, 126, 129, 130, 130, 129, 129, 126, 126, 127, 128, 130, 130, 133, 133, 130, 129, 127, 126, 123, 123, 127, 127, 128, 129, 130, 129, 125, 124, 124, 124, 126, 127, 130, 131, 131, 131, 129, 128, 128, 127, 127, 126, 127, 127, 125, 126, 127, 128, 126, 125, 127, 126, 124, 124, 127, 131, 128, 129, 130, 130, 128, 126, 129, 130, 129, 130, 131, 133, 132, 131, 131, 128, 126, 123, 121, 121, 120, 124, 126, 126, 127, 127, 127, 124, 123, 126, 128, 129, 129, 130, 133, 130, 129, 128, 130, 132, 131, 132, 132, 132, 131, 126, 126, 125, 124, 123, 122, 126, 128, 127, 126, 125, 125, 123, 120, 121, 123, 127, 129, 131, 134, 134, 134, 131, 128, 128, 127, 129, 128, 129, 131, 130, 127, 124, 123, 125, 124, 127, 130, 134, 134, 131, 129, 126, 123, 122, 122, 124, 125, 126, 128, 126, 126, 126, 127, 129, 128, 131, 132, 131, 129, 128, 129, 127, 125, 126, 127, 129, 129, 129, 131, 130, 129, 125, 123, 123, 122, 124, 126, 129, 132, 132, 131, 127, 126, 126, 124, 125, 126, 129, 131, 129, 128, 127, 127, 127, 125, 127, 130, 132, 131, 128, 129, 128, 126, 124, 123, 125, 126, 126, 127, 129, 132, 130, 128, 128, 128, 128, 126, 124, 125, 126, 126, 125, 127, 130, 131, 131, 129, 130, 130, 127, 125, 125, 127, 128, 126, 127, 128, 128, 126, 124, 126, 127, 129, 130, 130, 131, 130, 127, 125, 123, 124, 125, 126, 128, 130, 133, 131, 129, 128, 127, 127, 125, 125, 127, 128, 129, 128, 129, 130, 128, 127, 126, 127, 127, 126, 128, 128, 128, 127, 126, 126, 125, 125, 128, 129, 130, 129, 129, 128, 124, 123, 123, 126, 128, 129, 132, 133, 132, 130, 128, 128, 127, 127, 128, 129, 131, 129, 128, 126, 124, 124, 124, 124, 126, 128, 130, 129, 128, 127, 126, 125, 123, 125, 127, 128, 129, 130, 132, 132, 130, 129, 129, 129, 128, 127, 128, 129, 129, 128, 126, 126, 125, 124, 124, 125, 127, 127, 127, 127, 126, 126, 126, 126, 127, 129, 130, 130, 130, 130, 129, 129, 128, 127, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 128, 128, 127, 128, 129, 128, 129, 129, 130, 129, 128, 128, 127, 127, 126, 127, 128, 128, 129, 129, 128, 127, 126, 126, 125, 126, 127, 127, 128, 128, 128, 128, 127, 126, 126, 127, 127, 128, 129, 129, 129, 128, 127, 127, 127, 127, 127, 128, 129, 129, 129, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 126, 127, 127, 127, 128, 127, 128, 129, 128, 127, 127, 128, 128, 128, 128, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 129, 128, 128, 128, 128, 128, 129, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 126, 127, 127, 128, 127, 127, 127, 128, 127, 126, 127, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 129, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 128, 128, 127, 125, 125, 124, 124, 125, 125, 125, 127, 128, 128, 129, 130, 131, 131, 131, 130, 130, 130, 129, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 126, 126, 125, 125, 125, 125, 125, 125, 126, 126, 127, 127, 128, 129, 129, 129, 129, 130, 130, 129, 129, 129, 129, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 128, 128, 127, 127, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 129, 128, 127, 128, 129, 128, 127, 128, 128, 128, 128, 127, 128, 128, 127, 126, 127, 127, 126, 126, 127, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 129, 129, 128, 129, 128, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 128, 129, 128, 128, 129, 129, 128, 128, 128, 127, 127, 126, 126, 127, 127, 126, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 129, 128, 128, 128, 128, 127, 127, 125, 124, 124, 123, 123, 124, 124, 125, 126, 127, 128, 129, 131, 131, 132, 132, 133, 132, 132, 132, 131, 131, 130, 130, 129, 128, 127, 126, 126, 125, 125, 124, 124, 124, 123, 123, 123, 123, 123, 124, 125, 126, 126, 127, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 125, 126, 126, 126, 127, 127, 128, 128, 128, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 128, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 128, 128, 129, 128, 128, 128, 127, 127, 127, 126, 127, 127, 127, 128, 128, 129, 129, 129, 129, 129, 129, 128, 128, 127, 127, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 129, 129, 129, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 126, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 129, 129, 129, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 126, 126, 126, 126, 126, 125, 126, 126, 125, 125, 126, 126, 126, 126, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130, 130, 129, 129, 129, 130, 129, 129, 129, 129, 129, 128, 128, 127, 127, 126, 126, 126, 126, 126, 125, 126, 126, 126, 127, 127, 128, 128, 128, 128, 129, 129, 128, 128, 129, 129, 129, 129, 129, 128, 128, 127, 127, 127, 126, 126, 126, 126, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 129, 129, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 129, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 125, 125, 124, 124, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 129, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 127, 126, 126, 125, 124, 124, 124, 125, 125, 124, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 128, 128, 127, 127, 127, 126, 126, 126, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 127, 126, 126, 126, 126, 126, 126, 125, 125, 126, 126, 126, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 126, 125, 125, 124, 124, 124, 124, 124, 124, 125, 125, 126, 127, 127, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 129, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 126, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 126, 126, 128, 127, 126, 128, 128, 128, 127, 128, 128, 128, 127, 127, 128, 127, 126, 127, 128, 127, 127, 128, 128, 128, 127, 128, 129, 129, 128, 128, 130, 128, 127, 127, 127, 126, 125, 126, 127, 127, 127, 129, 130, 129, 128, 129, 129, 127, 126, 127, 127, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 129, 128, 128, 128, 129, 128, 129, 130, 128, 127, 127, 126, 125, 125, 126, 127, 127, 128, 128, 128, 127, 126, 126, 126, 125, 126, 127, 129, 129, 129, 130, 129, 128, 127, 127, 128, 128, 129, 129, 129, 128, 128, 127, 127, 127, 127, 127, 127, 128, 127, 126, 127, 127, 127, 126, 127, 128, 127, 126, 126, 127, 127, 126, 128, 130, 129, 128, 129, 129, 127, 126, 127, 129, 128, 128, 129, 129, 126, 125, 126, 128, 128, 129, 131, 131, 128, 125, 124, 123, 122, 123, 127, 129, 129, 129, 130, 129, 128, 128, 129, 129, 128, 129, 130, 129, 128, 129, 129, 127, 126, 126, 126, 126, 127, 129, 129, 128, 128, 128, 125, 124, 124, 125, 125, 125, 126, 127, 128, 128, 131, 133, 131, 130, 129, 126, 123, 123, 125, 127, 129, 132, 133, 133, 130, 128, 127, 127, 126, 127, 129, 129, 128, 128, 127, 124, 124, 125, 125, 126, 126, 128, 127, 126, 126, 128, 127, 128, 130, 131, 130, 129, 129, 128, 127, 126, 126, 127, 126, 126, 128, 129, 127, 127, 128, 127, 125, 125, 127, 127, 127, 130, 131, 130, 130, 130, 129, 128, 128, 129, 130, 129, 128, 128, 126, 124, 123, 124, 125, 126, 127, 129, 128, 125, 124, 124, 123, 125, 130, 133, 134, 134, 133, 129, 124, 122, 122, 124, 126, 129, 132, 133, 132, 132, 132, 130, 127, 127, 126, 124, 122, 123, 125, 126, 127, 130, 130, 128, 127, 127, 125, 124, 125, 127, 127, 127, 128, 129, 128, 128, 129, 129, 127, 126, 129, 131, 131, 133, 136, 134, 129, 125, 123, 121, 119, 123, 129, 130, 129, 130, 130, 126, 123, 124, 128, 128, 126, 128, 129, 126, 123, 125, 128, 128, 128, 131, 134, 131, 129, 129, 130, 127, 126, 127, 129, 128, 127, 128, 128, 126, 125, 126, 127, 127, 126, 127, 126, 125, 124, 125, 126, 128, 129, 130, 129, 129, 127, 125, 125, 128, 130, 131, 133, 135, 133, 130, 128, 127, 125, 122, 124, 127, 128, 128, 130, 131, 129, 125, 124, 124, 123, 122, 125, 128, 128, 127, 128, 128, 127, 127, 129, 130, 129, 128, 128, 126, 125, 127, 129, 130, 130, 132, 132, 129, 128, 130, 130, 128, 129, 131, 130, 126, 125, 126, 122, 118, 119, 122, 122, 122, 128, 135, 135, 132, 133, 133, 127, 121, 123, 127, 125, 123, 128, 132, 130, 127, 131, 134, 129, 125, 128, 130, 127, 125, 130, 133, 129, 124, 124, 124, 120, 118, 123, 128, 127, 127, 131, 133, 132, 131, 132, 133, 130, 126, 125, 126, 126, 126, 128, 130, 128, 124, 122, 123, 125, 127, 129, 132, 132, 128, 124, 124, 127, 129, 131, 133, 133, 128, 122, 121, 123, 124, 127, 131, 133, 130, 125, 123, 123, 124, 127, 132, 136, 134, 131, 128, 125, 122, 121, 123, 124, 125, 127, 128, 127, 128, 130, 130, 128, 130, 133, 131, 129, 130, 129, 124, 119, 121, 125, 126, 127, 133, 136, 129, 123, 125, 129, 129, 131, 141, 146, 137, 126, 124, 119, 110, 108, 118, 124, 120, 119, 126, 130, 128, 133, 146, 153, 146, 137, 133, 124, 109, 104, 114, 123, 126, 130, 137, 137, 127, 118, 118, 119, 120, 123, 130, 135, 136, 134, 132, 133, 132, 130, 130, 130, 129, 126, 123, 124, 126, 128, 129, 135, 140, 136, 127, 122, 119, 115, 113, 119, 130, 134, 131, 131, 129, 122, 119, 120, 123, 129, 133, 133, 132, 130, 126, 125, 127, 129, 133, 135, 135, 134, 133, 130, 127, 127, 129, 128, 127, 128, 126, 121, 117, 116, 117, 116, 117, 123, 125, 120, 124, 130, 129, 129, 132, 137, 139, 135, 133, 137, 136, 130, 132, 140, 143, 139, 138, 140, 133, 121, 116, 118, 117, 113, 112, 120, 123, 116, 115, 120, 117, 110, 109, 111, 116, 116, 119, 135, 144, 140, 144, 151, 147, 147, 156, 163, 166, 163, 157, 150, 136, 122, 116, 113, 106, 99, 100, 104, 99, 95, 98, 102, 103, 102, 103, 110, 114, 109, 106, 106, 103, 107, 120, 144, 183, 219, 237, 245, 229, 185, 141, 115, 101, 102, 118, 137, 144, 128, 99, 77, 66, 63, 74, 98, 120, 126, 121, 113, 101, 95, 101, 110, 114, 112, 110, 112, 113, 123, 156, 195, 216, 228, 229, 207, 171, 138, 117, 117, 124, 134, 147, 149, 124, 92, 69, 58, 55, 66, 91, 115, 121, 116, 113, 111, 105, 106, 119, 128, 122, 109, 100, 98, 100, 117, 160, 208, 233, 237, 234, 211, 167, 132, 121, 121, 122, 127, 137, 133, 110, 86, 76, 72, 69, 75, 92, 105, 106, 105, 109, 117, 120, 121, 130, 135, 125, 113, 104, 96, 97, 109, 132, 172, 211, 227, 231, 227, 201, 166, 142, 132, 130, 126, 123, 121, 107, 84, 72, 68, 63, 66, 82, 101, 106, 104, 112, 122, 123, 119, 121, 130, 127, 110, 105, 109, 104, 109, 133, 153, 178, 206, 220, 225, 219, 196, 176, 161, 142, 128, 119, 111, 110, 102, 86, 78, 78, 74, 69, 72, 88, 104, 109, 112, 120, 128, 125, 115, 118, 124, 112, 104, 111, 110, 111, 123, 139, 170, 202, 215, 227, 234, 210, 178, 158, 141, 129, 123, 121, 120, 106, 83, 71, 66, 57, 60, 81, 101, 110, 117, 124, 122, 113, 108, 108, 110, 111, 110, 118, 123, 113, 112, 126, 130, 141, 173, 202, 221, 233, 228, 210, 187, 162, 144, 131, 117, 114, 111, 97, 84, 81, 75, 68, 71, 84, 98, 107, 113, 117, 117, 108, 99, 100, 104, 102, 107, 115, 119, 124, 126, 121, 127, 153, 176, 191, 216, 245, 247, 217, 184, 161, 134, 101, 90, 104, 111, 102, 96, 94, 81, 65, 68, 89, 105, 106, 113, 124, 117, 101, 100, 105, 104, 106, 110, 113, 116, 120, 123, 121, 126, 152, 183, 202, 223, 246, 247, 222, 188, 159, 136, 112, 96, 101, 108, 101, 91, 87, 82, 71, 70, 85, 97, 101, 108, 111, 106, 103, 99, 99, 107, 109, 112, 120, 118, 112, 114, 117, 132, 155, 175, 201, 225, 229, 228, 223, 204, 183, 161, 135, 115, 102, 93, 89, 88, 86, 81, 78, 82, 80, 76, 86, 97, 103, 111, 112, 114, 118, 106, 97, 104, 108, 109, 116, 120, 127, 136, 141, 160, 187, 202, 220, 239, 237, 223, 202, 168, 136, 115, 101, 91, 92, 101, 106, 99, 89, 85, 84, 79, 71, 77, 98, 104, 101, 111, 118, 112, 107, 105, 106, 106, 102, 113, 132, 135, 138, 154, 162, 167, 182, 202, 225, 242, 232, 202, 166, 127, 90, 67, 69, 90, 115, 130, 130, 122, 108, 83, 62, 65, 81, 96, 114, 128, 129, 119, 106, 101, 102, 105, 117, 136, 142, 139, 138, 133, 127, 133, 148, 168, 191, 209, 214, 209, 196, 172, 144, 119, 99, 88, 84, 85, 93, 104, 107, 104, 105, 106, 105, 104, 104, 105, 102, 103, 110, 111, 110, 115, 119, 118, 118, 125, 136, 140, 138, 140, 141, 143, 152, 164, 179, 195, 202, 201, 187, 160, 135, 116, 99, 91, 96, 104, 108, 109, 110, 107, 96, 90, 96, 97, 98, 112, 121, 121, 119, 114, 114, 120, 124, 132, 140, 142, 142, 139, 134, 134, 136, 140, 151, 157, 159, 162, 159, 150, 139, 129, 124, 125, 125, 126, 122, 120, 122, 113, 103, 107, 109, 109, 115, 117, 119, 124, 121, 119, 122, 122, 126, 132, 129, 125, 126, 126, 128, 130, 133, 140, 142, 140, 138, 135, 132, 131, 129, 129, 130, 129, 130, 128, 125, 130, 133, 130, 130, 128, 124, 124, 119, 120, 130, 131, 126, 130, 133, 129, 125, 121, 119, 118, 117, 119, 122, 124, 125, 125, 124, 126, 129, 132, 136, 134, 132, 131, 130, 129, 128, 126, 129, 131, 130, 131, 130, 130, 133, 131, 127, 129, 129, 127, 128, 130, 128, 127, 129, 125, 119, 118, 122, 123, 122, 122, 124, 128, 128, 128, 130, 132, 129, 125, 127, 129, 128, 128, 130, 132, 130, 131, 134, 136, 133, 129, 127, 127, 128, 130, 130, 131, 134, 131, 125, 124, 122, 118, 118, 119, 117, 120, 124, 125, 125, 125, 125, 127, 125, 122, 122, 125, 127, 126, 125, 127, 127, 127, 132, 136, 137, 140, 140, 138, 134, 131, 133, 131, 124, 125, 130, 128, 127, 128, 126, 126, 124, 119, 123, 127, 123, 123, 126, 128, 128, 129, 133, 134, 131, 129, 128, 123, 121, 122, 123, 124, 126, 127, 128, 128, 128, 130, 130, 134, 137, 130, 126, 126, 121, 120, 123, 123, 127, 132, 130, 125, 123, 122, 120, 118, 122, 130, 134, 135, 137, 133, 128, 128, 127, 124, 125, 129, 130, 128, 126, 126, 124, 125, 130, 132, 136, 141, 138, 131, 128, 124, 120, 121, 124, 127, 128, 126, 125, 125, 122, 119, 120, 125, 130, 131, 133, 136, 134, 129, 126, 125, 125, 127, 129, 131, 132, 131, 131, 129, 127, 126, 128, 130, 128, 125, 126, 128, 124, 123, 128, 129, 125, 126, 129, 127, 126, 128, 127, 122, 122, 125, 124, 126, 130, 130, 128, 130, 129, 125, 127, 129, 126, 125, 130, 130, 127, 129, 131, 127, 124, 127, 128, 126, 126, 128, 128, 128, 128, 127, 127, 130, 128, 125, 129, 132, 127, 126, 131, 130, 126, 127, 129, 129, 128, 130, 130, 129, 130, 128, 127, 127, 127, 127, 127, 126, 124, 125, 126, 125, 125, 126, 128, 128, 128, 130, 130, 130, 130, 130, 129, 130, 129, 127, 126, 126, 124, 122, 124, 125, 125, 127, 127, 126, 126, 126, 124, 124, 128, 129, 129, 130, 132, 130, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 130, 131, 130, 130, 131, 130, 129, 128, 128, 128, 127, 127, 127, 125, 123, 124, 125, 124, 124, 127, 126, 124, 125, 127, 126, 127, 130, 131, 131, 133, 131, 129, 129, 130, 127, 127, 131, 130, 128, 130, 132, 129, 129, 132, 130, 127, 129, 129, 122, 121, 125, 122, 118, 122, 126, 123, 124, 128, 128, 128, 129, 129, 128, 130, 130, 127, 128, 131, 129, 126, 129, 130, 126, 125, 128, 127, 125, 127, 130, 129, 129, 130, 131, 130, 129, 129, 129, 128, 126, 126, 126, 126, 125, 124, 124, 126, 124, 123, 125, 129, 128, 126, 129, 133, 129, 126, 129, 132, 129, 129, 132, 132, 130, 130, 129, 126, 127, 127, 123, 123, 127, 125, 122, 126, 129, 126, 127, 132, 131, 128, 131, 132, 128, 128, 130, 127, 124, 126, 126, 123, 126, 128, 126, 127, 130, 128, 126, 128, 128, 124, 128, 131, 127, 127, 133, 130, 122, 126, 131, 124, 121, 130, 133, 125, 126, 132, 130, 124, 125, 128, 126, 124, 125, 126, 127, 128, 127, 127, 129, 129, 127, 127, 127, 127, 126, 125, 123, 125, 127, 125, 125, 132, 135, 131, 131, 137, 136, 128, 129, 134, 131, 127, 131, 133, 128, 125, 127, 126, 122, 123, 126, 125, 124, 126, 125, 123, 123, 124, 122, 123, 126, 127, 125, 127, 128, 126, 125, 126, 129, 130, 130, 131, 134, 136, 132, 130, 133, 133, 128, 127, 131, 130, 126, 127, 128, 125, 124, 125, 123, 121, 122, 122, 118, 119, 125, 125, 124, 130, 135, 132, 130, 132, 131, 127, 127, 129, 129, 129, 130, 129, 129, 129, 128, 127, 129, 130, 129, 128, 128, 126, 124, 124, 125, 125, 126, 128, 128, 128, 129, 127, 126, 128, 130, 128, 129, 134, 134, 131, 132, 135, 132, 126, 125, 126, 124, 120, 122, 126, 126, 124, 125, 128, 127, 123, 123, 126, 125, 121, 120, 121, 118, 113, 113, 116, 117, 120, 127, 134, 138, 144, 151, 154, 159, 163, 164, 160, 157, 150, 138, 127, 120, 112, 102, 99, 100, 99, 96, 100, 105, 108, 110, 114, 119, 119, 116, 115, 114, 111, 108, 110, 113, 117, 127, 140, 153, 167, 186, 199, 201, 202, 201, 185, 160, 143, 130, 108, 87, 83, 83, 74, 71, 83, 95, 98, 106, 122, 129, 127, 127, 128, 123, 116, 115, 114, 112, 112, 115, 115, 116, 122, 132, 138, 146, 163, 176, 180, 185, 194, 192, 178, 165, 157, 138, 111, 96, 90, 79, 69, 74, 85, 90, 94, 108, 121, 124, 127, 133, 134, 128, 124, 121, 114, 110, 112, 113, 113, 119, 128, 131, 133, 144, 158, 165, 171, 183, 193, 189, 178, 170, 161, 141, 119, 107, 101, 89, 77, 77, 84, 86, 88, 97, 111, 118, 120, 123, 129, 131, 125, 120, 123, 124, 118, 114, 121, 127, 124, 126, 137, 144, 144, 148, 156, 161, 164, 168, 171, 171, 169, 161, 148, 138, 127, 113, 100, 95, 93, 88, 87, 90, 96, 101, 105, 109, 117, 123, 120, 116, 120, 122, 116, 114, 123, 129, 127, 129, 138, 142, 141, 143, 148, 151, 153, 152, 152, 156, 157, 154, 151, 154, 152, 143, 134, 130, 124, 114, 105, 101, 101, 98, 93, 92, 100, 105, 101, 105, 120, 124, 115, 116, 128, 127, 116, 122, 136, 134, 128, 136, 145, 141, 135, 141, 147, 143, 141, 147, 151, 148, 147, 151, 151, 145, 143, 142, 133, 123, 122, 121, 111, 105, 111, 111, 100, 98, 108, 109, 100, 106, 120, 119, 113, 119, 128, 124, 120, 127, 133, 132, 133, 137, 138, 139, 139, 138, 139, 144, 145, 143, 144, 147, 145, 139, 137, 138, 135, 128, 124, 125, 124, 118, 115, 120, 121, 115, 112, 117, 117, 111, 111, 118, 120, 118, 121, 125, 125, 124, 126, 128, 129, 131, 130, 129, 130, 131, 128, 129, 135, 137, 136, 139, 142, 137, 133, 135, 134, 130, 132, 136, 132, 128, 131, 130, 123, 120, 124, 125, 119, 118, 123, 123, 117, 116, 122, 124, 119, 119, 127, 130, 124, 124, 133, 132, 124, 125, 133, 130, 123, 128, 135, 133, 130, 134, 137, 134, 131, 132, 133, 132, 131, 130, 131, 130, 127, 124, 125, 125, 122, 122, 124, 123, 121, 123, 124, 122, 124, 128, 129, 126, 128, 129, 126, 124, 126, 127, 126, 128, 129, 128, 128, 131, 130, 130, 132, 134, 133, 131, 131, 131, 130, 127, 127, 129, 128, 125, 125, 128, 126, 123, 126, 129, 124, 120, 123, 124, 118, 120, 129, 130, 126, 129, 133, 128, 122, 126, 129, 127, 129, 134, 134, 130, 131, 133, 130, 129, 133, 136, 133, 129, 130, 132, 128, 123, 125, 130, 125, 119, 121, 124, 119, 115, 120, 125, 122, 121, 126, 129, 126, 126, 129, 130, 129, 129, 131, 133, 133, 132, 133, 136, 133, 128, 130, 134, 131, 127, 131, 133, 128, 124, 124, 123, 120, 121, 124, 125, 127, 130, 128, 125, 125, 125, 123, 123, 126, 129, 130, 130, 128, 126, 125, 124, 123, 126, 131, 134, 134, 133, 133, 130, 126, 124, 124, 127, 128, 128, 129, 130, 127, 124, 127, 129, 128, 128, 132, 131, 124, 124, 128, 126, 121, 124, 130, 127, 123, 125, 129, 129, 129, 131, 133, 133, 131, 128, 127, 130, 129, 126, 126, 128, 125, 122, 122, 124, 123, 124, 127, 127, 125, 125, 127, 127, 125, 127, 131, 132, 129, 129, 133, 133, 128, 129, 134, 132, 127, 129, 133, 130, 127, 131, 131, 124, 123, 128, 125, 120, 124, 131, 128, 121, 124, 128, 123, 120, 124, 130, 129, 127, 128, 130, 128, 126, 128, 130, 130, 130, 131, 130, 127, 126, 127, 126, 124, 126, 130, 130, 130, 130, 130, 129, 127, 124, 122, 126, 129, 127, 126, 132, 134, 126, 123, 129, 131, 126, 126, 132, 131, 124, 123, 126, 125, 122, 126, 133, 132, 128, 129, 133, 128, 120, 122, 129, 127, 120, 124, 132, 129, 121, 122, 128, 124, 118, 121, 128, 130, 129, 132, 135, 135, 132, 130, 131, 132, 132, 133, 134, 133, 130, 128, 129, 128, 126, 127, 131, 130, 124, 122, 124, 124, 120, 118, 124, 127, 121, 118, 123, 128, 124, 123, 128, 130, 124, 122, 126, 127, 125, 131, 137, 136, 133, 136, 138, 131, 127, 134, 137, 131, 128, 132, 133, 126, 122, 128, 131, 126, 124, 128, 127, 122, 120, 122, 120, 118, 120, 123, 121, 119, 122, 124, 122, 121, 125, 130, 132, 133, 135, 137, 138, 134, 130, 132, 136, 135, 131, 133, 137, 133, 125, 124, 129, 128, 125, 127, 132, 129, 122, 121, 122, 118, 115, 120, 124, 121, 119, 125, 130, 124, 122, 129, 133, 126, 121, 129, 135, 131, 128, 135, 139, 132, 125, 128, 133, 131, 130, 135, 139, 135, 129, 129, 129, 126, 126, 131, 134, 130, 128, 128, 125, 117, 113, 117, 119, 115, 112, 117, 122, 119, 116, 122, 129, 128, 126, 131, 137, 137, 137, 140, 142, 138, 134, 133, 131, 127, 128, 132, 132, 129, 130, 132, 128, 124, 126, 130, 130, 127, 127, 130, 128, 122, 118, 117, 118, 117, 117, 120, 125, 129, 128, 127, 129, 129, 124, 124, 131, 134, 131, 131, 133, 130, 123, 124, 131, 131, 126, 130, 136, 129, 120, 127, 136, 132, 125, 133, 142, 134, 124, 128, 134, 127, 119, 122, 126, 121, 117, 123, 123, 117, 117, 123, 126, 126, 132, 137, 135, 131, 133, 133, 126, 123, 128, 130, 127, 128, 131, 128, 121, 122, 126, 123, 124, 135, 141, 133, 127, 130, 128, 118, 119, 132, 136, 125, 122, 129, 129, 122, 125, 137, 139, 131, 133, 138, 133, 124, 125, 129, 125, 120, 119, 121, 120, 116, 118, 121, 121, 124, 128, 129, 128, 130, 128, 127, 133, 138, 134, 131, 136, 138, 130, 123, 127, 134, 129, 120, 123, 129, 125, 121, 127, 130, 127, 130, 137, 134, 126, 123, 128, 128, 121, 122, 131, 129, 116, 115, 121, 117, 113, 126, 142, 146, 141, 140, 143, 137, 123, 122, 131, 132, 124, 125, 127, 119, 113, 114, 118, 122, 127, 130, 131, 126, 122, 129, 138, 136, 133, 136, 132, 121, 114, 113, 117, 127, 133, 133, 131, 130, 126, 121, 118, 122, 133, 138, 136, 143, 150, 138, 122, 124, 134, 136, 136, 145, 155, 147, 124, 107, 104, 99, 97, 108, 124, 129, 129, 128, 124, 118, 112, 107, 108, 113, 115, 112, 114, 122, 129, 127, 122, 128, 136, 131, 132, 155, 178, 183, 191, 211, 210, 173, 135, 124, 114, 84, 71, 96, 121, 112, 101, 111, 112, 87, 73, 92, 110, 107, 109, 129, 133, 110, 96, 106, 111, 101, 104, 128, 143, 136, 135, 155, 175, 181, 191, 211, 219, 204, 180, 160, 141, 117, 97, 98, 109, 109, 99, 98, 103, 99, 90, 89, 100, 110, 110, 109, 113, 111, 101, 102, 110, 108, 105, 114, 122, 116, 110, 117, 132, 141, 149, 171, 194, 195, 189, 200, 204, 182, 159, 151, 141, 123, 110, 113, 122, 116, 102, 98, 94, 79, 76, 95, 108, 105, 103, 106, 105, 100, 96, 100, 113, 118, 116, 119, 121, 119, 123, 130, 130, 138, 156, 171, 187, 205, 213, 207, 193, 173, 154, 137, 122, 117, 126, 127, 116, 111, 107, 90, 73, 70, 79, 94, 103, 104, 111, 117, 108, 98, 100, 102, 101, 110, 120, 122, 118, 118, 129, 142, 139, 134, 156, 186, 193, 190, 199, 207, 196, 171, 153, 152, 145, 124, 115, 126, 121, 96, 85, 91, 89, 75, 70, 88, 106, 101, 90, 97, 108, 103, 99, 107, 112, 108, 108, 117, 126, 130, 136, 149, 154, 146, 146, 165, 185, 194, 204, 213, 204, 176, 153, 146, 143, 128, 114, 115, 118, 106, 89, 84, 87, 82, 74, 77, 91, 101, 101, 102, 107, 109, 104, 99, 103, 112, 118, 122, 128, 133, 136, 141, 145, 146, 147, 152, 167, 189, 206, 205, 193, 178, 161, 146, 138, 136, 137, 135, 124, 109, 96, 83, 77, 86, 93, 87, 82, 87, 96, 103, 103, 105, 116, 118, 104, 96, 105, 118, 129, 138, 140, 139, 143, 142, 137, 142, 156, 171, 185, 191, 191, 188, 175, 157, 154, 153, 137, 123, 125, 123, 111, 99, 93, 90, 83, 72, 77, 96, 102, 100, 110, 116, 106, 97, 98, 100, 108, 122, 133, 140, 134, 123, 127, 137, 132, 128, 145, 166, 179, 187, 189, 186, 184, 174, 161, 159, 157, 144, 134, 125, 112, 103, 95, 85, 84, 89, 86, 82, 88, 96, 104, 109, 106, 104, 109, 105, 97, 106, 122, 128, 126, 125, 129, 139, 138, 132, 144, 164, 168, 170, 187, 204, 202, 185, 168, 163, 157, 137, 120, 123, 129, 120, 105, 90, 78, 71, 68, 75, 93, 108, 109, 109, 113, 108, 97, 90, 95, 108, 118, 121, 127, 133, 131, 131, 141, 148, 142, 139, 152, 171, 182, 188, 198, 202, 187, 166, 153, 142, 129, 125, 134, 139, 124, 98, 83, 78, 70, 67, 79, 99, 110, 111, 108, 105, 104, 101, 98, 97, 100, 110, 121, 124, 125, 132, 139, 138, 135, 136, 144, 164, 185, 197, 205, 206, 193, 176, 161, 150, 143, 140, 140, 139, 131, 110, 86, 76, 69, 62, 69, 94, 110, 101, 86, 88, 99, 97, 86, 94, 115, 123, 119, 120, 125, 128, 134, 147, 155, 150, 143, 156, 184, 194, 185, 184, 194, 186, 163, 149, 149, 150, 145, 135, 127, 121, 104, 82, 75, 78, 77, 80, 90, 97, 96, 89, 86, 95, 102, 97, 97, 111, 119, 118, 119, 127, 140, 152, 149, 141, 143, 146, 152, 169, 188, 199, 208, 205, 184, 167, 160, 149, 137, 131, 126, 125, 119, 101, 81, 71, 66, 64, 68, 75, 86, 101, 110, 113, 114, 106, 94, 94, 101, 111, 124, 133, 141, 150, 150, 139, 133, 138, 147, 166, 190, 202, 202, 196, 189, 181, 169, 152, 139, 131, 127, 124, 116, 104, 94, 87, 77, 69, 65, 70, 85, 101, 105, 104, 103, 101, 99, 98, 92, 98, 120, 137, 139, 140, 147, 152, 144, 133, 137, 155, 172, 187, 202, 201, 185, 177, 180, 177, 162, 146, 139, 136, 118, 91, 87, 96, 89, 75, 72, 74, 75, 79, 86, 97, 109, 111, 104, 98, 94, 97, 111, 124, 130, 137, 145, 152, 153, 145, 135, 139, 156, 170, 180, 185, 188, 195, 196, 181, 161, 152, 147, 139, 133, 124, 110, 102, 94, 79, 65, 64, 70, 80, 92, 96, 98, 102, 103, 97, 95, 99, 106, 117, 126, 127, 130, 141, 151, 154, 150, 145, 150, 158, 157, 162, 179, 193, 197, 195, 186, 172, 156, 132, 115, 122, 129, 119, 111, 107, 90, 72, 66, 66, 73, 87, 98, 109, 114, 101, 88, 94, 101, 102, 108, 118, 126, 135, 140, 144, 150, 146, 141, 149, 157, 154, 161, 176, 186, 194, 193, 180, 170, 165, 147, 133, 134, 132, 120, 109, 97, 87, 82, 74, 71, 85, 98, 96, 93, 94, 96, 98, 98, 103, 116, 125, 124, 126, 129, 128, 133, 142, 144, 146, 149, 150, 154, 159, 154, 150, 159, 166, 163, 160, 161, 164, 165, 160, 150, 140, 128, 116, 108, 103, 99, 92, 90, 94, 93, 85, 81, 85, 88, 91, 97, 103, 106, 108, 113, 118, 122, 126, 134, 143, 149, 155, 160, 162, 162, 161, 162, 165, 162, 155, 159, 168, 166, 160, 162, 160, 148, 135, 125, 114, 103, 95, 92, 92, 86, 76, 77, 85, 84, 82, 89, 103, 114, 113, 108, 114, 118, 113, 115, 127, 135, 142, 152, 158, 162, 164, 157, 154, 163, 164, 161, 167, 171, 170, 169, 166, 155, 145, 136, 128, 121, 111, 99, 94, 93, 88, 84, 83, 84, 89, 92, 91, 96, 105, 105, 106, 113, 115, 115, 118, 120, 127, 141, 147, 147, 155, 165, 164, 159, 156, 158, 161, 162, 161, 163, 166, 164, 160, 153, 146, 137, 124, 113, 106, 99, 89, 85, 86, 87, 90, 93, 93, 96, 105, 111, 111, 110, 114, 118, 118, 117, 116, 119, 127, 133, 136, 141, 149, 154, 157, 161, 161, 160, 164, 166, 162, 162, 165, 162, 154, 148, 143, 135, 121, 107, 102, 100, 93, 86, 87, 90, 91, 92, 93, 102, 107, 105, 111, 122, 119, 112, 117, 124, 122, 122, 127, 133, 145, 149, 148, 156, 159, 155, 154, 158, 156, 153, 157, 162, 166, 162, 155, 156, 153, 139, 126, 120, 112, 102, 94, 85, 82, 83, 77, 78, 89, 93, 94, 104, 113, 112, 114, 120, 120, 122, 125, 127, 133, 137, 139, 142, 148, 153, 155, 154, 153, 158, 164, 161, 159, 162, 165, 166, 162, 154, 150, 147, 138, 123, 113, 103, 93, 89, 85, 82, 85, 91, 94, 95, 100, 103, 103, 105, 109, 114, 114, 117, 121, 125, 132, 136, 138, 143, 148, 149, 145, 148, 152, 151, 152, 155, 158, 159, 156, 159, 161, 158, 157, 154, 147, 135, 125, 118, 108, 101, 93, 91, 96, 88, 79, 85, 95, 98, 99, 106, 112, 117, 115, 107, 112, 122, 124, 126, 134, 143, 143, 143, 144, 149, 152, 149, 153, 159, 155, 154, 158, 159, 157, 158, 159, 153, 151, 145, 136, 134, 126, 113, 106, 98, 88, 79, 79, 81, 83, 90, 93, 97, 104, 105, 110, 117, 122, 128, 130, 130, 132, 135, 135, 137, 145, 148, 150, 152, 149, 147, 150, 153, 153, 155, 160, 158, 157, 155, 150, 149, 146, 141, 132, 124, 117, 105, 98, 94, 92, 91, 88, 91, 92, 92, 98, 102, 108, 113, 115, 119, 118, 120, 124, 126, 133, 136, 139, 141, 140, 144, 144, 147, 151, 152, 154, 152, 147, 146, 148, 149, 146, 149, 151, 145, 140, 135, 130, 125, 123, 119, 113, 110, 103, 100, 99, 94, 97, 101, 102, 103, 103, 109, 114, 117, 123, 127, 135, 131, 126, 131, 128, 125, 128, 134, 140, 141, 149, 153, 155, 159, 156, 157, 156, 149, 147, 145, 143, 138, 133, 130, 121, 113, 104, 101, 104, 101, 102, 108, 111, 108, 101, 103, 107, 113, 113, 116, 130, 134, 130, 132, 135, 137, 135, 138, 139, 133, 135, 134, 134, 134, 133, 140, 141, 141, 143, 144, 149, 148, 148, 150, 145, 141, 133, 125, 121, 114, 112, 110, 108, 108, 106, 106, 103, 101, 102, 102, 104, 106, 109, 114, 117, 122, 125, 131, 133, 132, 136, 139, 141, 138, 140, 147, 145, 145, 149, 152, 156, 158, 164, 165, 160, 161, 156, 147, 136, 125, 122, 110, 99, 96, 92, 92, 90, 94, 98, 98, 102, 101, 102, 105, 105, 110, 114, 118, 124, 126, 129, 132, 135, 136, 139, 146, 146, 143, 145, 149, 149, 147, 154, 160, 163, 165, 167, 169, 161, 153, 151, 140, 127, 115, 109, 102, 91, 90, 89, 88, 92, 92, 97, 100, 100, 107, 109, 113, 115, 116, 122, 121, 124, 127, 127, 133, 134, 136, 140, 141, 145, 146, 149, 151, 150, 152, 153, 154, 155, 157, 161, 159, 155, 153, 148, 138, 126, 122, 115, 106, 99, 96, 94, 88, 88, 93, 93, 96, 100, 107, 110, 109, 117, 121, 123, 127, 129, 134, 134, 134, 139, 139, 142, 145, 147, 149, 147, 149, 147, 144, 146, 145, 145, 144, 143, 142, 136, 134, 133, 129, 126, 125, 124, 119, 115, 113, 110, 106, 103, 104, 105, 103, 107, 110, 114, 115, 117, 123, 123, 124, 127, 129, 133, 132, 136, 140, 138, 141, 140, 141, 141, 138, 140, 139, 137, 137, 135, 137, 136, 134, 136, 135, 134, 132, 129, 130, 126, 124, 123, 121, 118, 115, 114, 114, 112, 113, 115, 115, 115, 116, 118, 119, 120, 123, 128, 129, 129, 131, 131, 131, 130, 133, 136, 136, 139, 139, 138, 138, 135, 136, 134, 132, 135, 132, 132, 131, 129, 129, 127, 127, 128, 127, 127, 126, 127, 125, 122, 123, 120, 118, 117, 115, 116, 116, 116, 119, 121, 122, 123, 127, 128, 128, 131, 133, 134, 135, 135, 135, 135, 134, 134, 135, 134, 133, 134, 133, 132, 132, 129, 130, 127, 125, 127, 126, 126, 129, 130, 131, 129, 128, 124, 120, 118, 116, 117, 117, 118, 122, 121, 121, 125, 126, 126, 129, 132, 133, 131, 131, 131, 130, 128, 129, 130, 129, 130, 131, 133, 132, 132, 134, 133, 132, 130, 129, 130, 125, 126, 128, 125, 127, 126, 126, 127, 124, 124, 126, 125, 125, 124, 125, 123, 123, 122, 122, 124, 124, 124, 128, 128, 128, 127, 129, 130, 126, 127, 130, 129, 129, 132, 135, 135, 133, 134, 134, 131, 130, 130, 130, 129, 127, 128, 127, 123, 124, 126, 124, 126, 126, 126, 127, 125, 125, 126, 124, 125, 124, 122, 122, 120, 121, 121, 121, 126, 127, 128, 132, 133, 134, 133, 136, 137, 133, 134, 134, 131, 128, 127, 129, 127, 126, 129, 129, 129, 126, 128, 131, 126, 128, 130, 127, 128, 126, 125, 126, 122, 122, 123, 121, 120, 119, 120, 121, 119, 122, 124, 124, 126, 129, 131, 133, 135, 135, 136, 137, 135, 134, 133, 134, 132, 129, 132, 131, 128, 131, 132, 132, 131, 130, 131, 128, 123, 122, 122, 118, 116, 119, 119, 117, 119, 119, 121, 122, 122, 126, 126, 127, 127, 127, 130, 128, 130, 134, 131, 133, 133, 132, 133, 130, 133, 133, 131, 137, 136, 134, 139, 138, 137, 137, 136, 134, 129, 125, 123, 118, 114, 112, 112, 110, 108, 112, 113, 113, 117, 120, 123, 126, 128, 132, 133, 133, 133, 132, 132, 131, 129, 131, 132, 132, 134, 137, 140, 138, 142, 145, 142, 145, 146, 141, 143, 138, 132, 130, 122, 116, 113, 106, 105, 102, 98, 100, 101, 102, 105, 111, 116, 119, 126, 131, 132, 136, 137, 139, 138, 135, 137, 134, 132, 136, 136, 139, 144, 147, 150, 154, 157, 156, 157, 157, 150, 146, 141, 127, 121, 110, 97, 93, 85, 80, 82, 80, 85, 92, 96, 105, 115, 121, 129, 136, 141, 143, 144, 143, 141, 139, 135, 134, 134, 131, 137, 141, 144, 155, 160, 163, 171, 172, 170, 168, 162, 152, 140, 131, 116, 102, 94, 80, 73, 71, 65, 70, 73, 77, 90, 97, 108, 121, 129, 138, 144, 149, 150, 149, 148, 141, 139, 134, 128, 130, 128, 133, 141, 145, 158, 166, 171, 179, 180, 179, 174, 168, 157, 140, 130, 113, 95, 87, 73, 65, 63, 59, 63, 66, 74, 85, 95, 109, 119, 132, 142, 148, 155, 155, 155, 153, 145, 142, 135, 130, 128, 125, 131, 135, 141, 155, 161, 172, 180, 183, 187, 180, 175, 166, 146, 136, 118, 97, 88, 73, 61, 58, 55, 55, 59, 68, 77, 89, 103, 115, 128, 139, 148, 156, 157, 160, 158, 151, 148, 139, 134, 131, 126, 129, 132, 136, 150, 156, 165, 178, 179, 184, 184, 174, 168, 155, 137, 125, 105, 90, 79, 64, 59, 56, 53, 58, 65, 72, 85, 96, 110, 124, 135, 146, 156, 159, 163, 164, 158, 155, 149, 138, 136, 131, 125, 131, 132, 138, 150, 155, 166, 174, 176, 182, 177, 169, 163, 146, 132, 119, 100, 85, 75, 65, 57, 57, 57, 58, 67, 76, 84, 99, 113, 123, 137, 149, 155, 161, 166, 163, 160, 158, 147, 140, 138, 129, 128, 133, 132, 140, 152, 156, 167, 177, 177, 182, 179, 169, 162, 147, 132, 117, 98, 86, 73, 60, 57, 53, 50, 57, 64, 69, 84, 99, 107, 126, 141, 146, 160, 166, 164, 167, 163, 156, 148, 143, 138, 128, 133, 134, 132, 149, 154, 158, 177, 178, 179, 187, 175, 166, 159, 138, 122, 108, 89, 76, 66, 55, 52, 51, 51, 60, 67, 77, 94, 104, 119, 136, 143, 155, 164, 162, 165, 163, 156, 150, 144, 138, 131, 130, 134, 133, 143, 156, 158, 172, 184, 179, 186, 185, 168, 164, 148, 126, 114, 95, 78, 68, 56, 50, 47, 49, 53, 61, 73, 84, 100, 115, 128, 144, 153, 161, 167, 167, 165, 161, 155, 146, 140, 136, 128, 132, 136, 135, 153, 160, 165, 185, 182, 184, 191, 174, 165, 156, 133, 116, 102, 82, 65, 59, 48, 39, 48, 47, 51, 72, 78, 93, 117, 124, 142, 158, 160, 170, 174, 166, 165, 162, 145, 143, 141, 124, 132, 138, 130, 151, 161, 159, 182, 184, 178, 189, 176, 161, 157, 135, 114, 105, 84, 65, 62, 50, 38, 50, 48, 48, 73, 80, 89, 119, 127, 138, 161, 163, 167, 177, 167, 163, 163, 145, 140, 139, 122, 128, 136, 127, 147, 162, 157, 180, 187, 177, 189, 181, 161, 159, 139, 115, 106, 86, 64, 60, 49, 36, 46, 48, 47, 72, 82, 90, 121, 132, 140, 164, 168, 168, 178, 172, 163, 160, 148, 137, 134, 124, 124, 133, 129, 144, 161, 159, 178, 189, 179, 187, 183, 161, 154, 139, 113, 99, 85, 62, 52, 48, 35, 40, 49, 48, 70, 87, 94, 123, 138, 145, 167, 174, 171, 180, 175, 162, 159, 148, 134, 132, 124, 122, 132, 132, 146, 163, 165, 181, 193, 183, 187, 185, 161, 150, 138, 108, 89, 78, 53, 39, 40, 30, 31, 47, 53, 68, 94, 108, 128, 151, 160, 173, 183, 179, 180, 174, 160, 153, 138, 126, 123, 113, 116, 128, 130, 147, 169, 171, 188, 205, 193, 194, 196, 167, 151, 141, 104, 82, 70, 41, 26, 27, 19, 20, 38, 52, 67, 95, 118, 134, 158, 175, 181, 189, 192, 182, 172, 165, 148, 128, 125, 115, 103, 116, 124, 124, 151, 171, 172, 195, 211, 197, 200, 201, 170, 153, 141, 103, 77, 64, 36, 19, 18, 15, 17, 34, 53, 71, 96, 125, 143, 161, 183, 187, 187, 195, 180, 164, 162, 138, 117, 122, 106, 96, 121, 124, 126, 165, 180, 180, 212, 220, 203, 210, 202, 168, 150, 131, 92, 65, 47, 25, 7, 6, 11, 14, 31, 61, 81, 103, 138, 157, 169, 191, 195, 189, 193, 177, 159, 152, 128, 112, 114, 99, 98, 124, 126, 138, 179, 187, 194, 226, 224, 208, 214, 196, 159, 141, 115, 75, 48, 31, 10, 0, 0, 10, 15, 37, 74, 92, 116, 154, 170, 180, 200, 202, 193, 190, 176, 157, 141, 122, 112, 104, 95, 107, 120, 125, 152, 179, 185, 206, 226, 217, 211, 209, 183, 152, 130, 100, 63, 39, 24, 6, 0, 5, 16, 23, 52, 85, 102, 131, 164, 176, 188, 201, 200, 191, 181, 169, 153, 131, 120, 116, 100, 101, 120, 120, 131, 167, 176, 184, 213, 215, 204, 206, 192, 163, 139, 116, 85, 55, 36, 22, 7, 5, 19, 29, 43, 77, 103, 120, 151, 172, 179, 192, 197, 192, 184, 171, 159, 143, 121, 114, 108, 93, 102, 119, 118, 138, 169, 173, 186, 210, 205, 196, 198, 181, 153, 134, 112, 80, 55, 43, 28, 16, 22, 34, 41, 61, 90, 107, 128, 156, 169, 178, 190, 191, 185, 177, 166, 154, 137, 123, 116, 107, 101, 107, 115, 120, 136, 155, 162, 175, 190, 188, 184, 183, 170, 151, 134, 119, 95, 74, 68, 52, 40, 48, 51, 55, 74, 91, 104, 121, 141, 152, 160, 171, 175, 173, 171, 167, 158, 147, 141, 132, 121, 120, 117, 115, 120, 123, 128, 133, 139, 144, 147, 149, 148, 148, 144, 135, 134, 124, 113, 114, 107, 100, 105, 104, 102, 107, 112, 113, 116, 124, 124, 125, 131, 130, 130, 129, 129, 128, 125, 128, 126, 124, 130, 128, 130, 135, 134, 137, 139, 139, 140, 141, 142, 139, 141, 142, 134, 138, 136, 126, 129, 127, 120, 123, 125, 122, 123, 127, 124, 122, 123, 119, 116, 115, 114, 113, 112, 115, 113, 114, 118, 117, 121, 124, 124, 131, 132, 133, 137, 136, 137, 137, 138, 137, 134, 138, 135, 132, 137, 134, 132, 136, 136, 135, 137, 140, 138, 137, 140, 137, 133, 134, 130, 124, 122, 119, 113, 111, 109, 103, 103, 102, 101, 106, 106, 110, 118, 119, 122, 130, 129, 130, 136, 136, 134, 141, 141, 139, 144, 142, 141, 141, 139, 141, 137, 139, 141, 136, 139, 138, 133, 135, 132, 131, 129, 127, 127, 123, 122, 120, 115, 115, 109, 107, 109, 103, 106, 109, 107, 112, 117, 117, 120, 126, 126, 128, 134, 134, 137, 140, 143, 146, 145, 149, 147, 141, 145, 138, 133, 136, 127, 128, 129, 124, 129, 129, 129, 131, 131, 132, 127, 127, 124, 118, 120, 117, 114, 117, 114, 116, 114, 113, 116, 112, 117, 122, 120, 128, 132, 132, 135, 137, 137, 135, 138, 137, 134, 137, 132, 130, 131, 124, 127, 128, 126, 132, 133, 134, 137, 137, 135, 135, 133, 130, 128, 126, 124, 123, 118, 120, 120, 114, 121, 120, 116, 124, 122, 122, 127, 126, 129, 128, 129, 132, 125, 128, 128, 123, 126, 127, 126, 127, 128, 131, 128, 130, 135, 130, 135, 138, 133, 136, 134, 131, 132, 127, 128, 131, 126, 128, 130, 125, 126, 127, 123, 123, 125, 124, 123, 123, 122, 122, 120, 121, 124, 120, 124, 128, 123, 125, 130, 126, 128, 134, 133, 133, 136, 135, 130, 130, 129, 126, 127, 129, 131, 131, 131, 133, 129, 127, 129, 127, 127, 129, 129, 128, 125, 127, 123, 120, 124, 121, 123, 124, 123, 125, 120, 123, 126, 122, 132, 134, 130, 136, 130, 127, 126, 123, 130, 130, 134, 142, 137, 137, 133, 123, 120, 118, 118, 122, 126, 130, 131, 129, 126, 123, 119, 120, 126, 128, 134, 140, 137, 136, 131, 124, 122, 119, 123, 125, 127, 133, 130, 129, 127, 122, 123, 122, 126, 131, 133, 139, 138, 136, 137, 130, 127, 124, 120, 120, 119, 118, 119, 119, 121, 122, 124, 126, 129, 132, 129, 132, 132, 129, 131, 129, 128, 131, 129, 130, 132, 131, 133, 134, 131, 132, 131, 127, 128, 125, 122, 126, 122, 123, 125, 123, 125, 124, 122, 125, 123, 125, 126, 125, 129, 127, 129, 129, 127, 132, 130, 131, 134, 131, 135, 133, 128, 132, 128, 127, 129, 128, 130, 130, 128, 128, 127, 124, 123, 122, 117, 119, 120, 116, 119, 119, 122, 129, 126, 135, 140, 138, 141, 136, 135, 131, 122, 123, 120, 122, 126, 126, 134, 135, 139, 144, 138, 143, 142, 137, 138, 129, 128, 124, 112, 112, 107, 106, 106, 104, 111, 112, 115, 118, 117, 124, 122, 123, 127, 123, 131, 128, 124, 130, 127, 131, 135, 136, 150, 155, 160, 170, 173, 178, 175, 172, 169, 159, 148, 132, 118, 101, 82, 72, 59, 55, 59, 60, 75, 88, 101, 118, 125, 139, 147, 146, 151, 147, 144, 136, 122, 119, 109, 103, 105, 107, 123, 136, 151, 178, 195, 212, 226, 227, 231, 221, 198, 175, 146, 115, 85, 52, 32, 22, 11, 9, 21, 37, 56, 77, 101, 133, 153, 165, 181, 185, 180, 168, 150, 136, 116, 97, 88, 82, 81, 89, 103, 124, 146, 173, 201, 224, 243, 255, 255, 249, 229, 203, 170, 130, 93, 58, 25, 4, 0, 0, 0, 13, 39, 68, 96, 127, 154, 172, 182, 188, 185, 171, 155, 136, 116, 97, 80, 78, 79, 80, 99, 118, 139, 166, 186, 216, 236, 241, 255, 253, 238, 220, 187, 159, 123, 81, 56, 30, 11, 4, 0, 12, 27, 44, 73, 99, 126, 150, 165, 176, 178, 171, 160, 142, 124, 110, 96, 87, 87, 89, 99, 113, 127, 150, 169, 184, 204, 214, 222, 229, 222, 217, 206, 185, 167, 139, 109, 88, 60, 38, 27, 19, 23, 30, 41, 65, 86, 105, 126, 146, 161, 167, 168, 168, 159, 142, 124, 112, 98, 85, 84, 89, 99, 111, 126, 150, 165, 177, 196, 207, 214, 217, 216, 217, 203, 185, 172, 146, 123, 98, 74, 60, 41, 32, 34, 31, 43, 58, 70, 94, 110, 128, 148, 153, 164, 166, 155, 151, 138, 121, 111, 98, 95, 96, 96, 112, 130, 137, 155, 174, 184, 191, 192, 201, 207, 193, 189, 190, 176, 161, 138, 124, 111, 82, 66, 57, 48, 45, 40, 49, 65, 75, 92, 107, 125, 145, 148, 153, 156, 153, 146, 130, 122, 118, 106, 99, 99, 109, 116, 122, 141, 157, 170, 178, 182, 193, 190, 185, 186, 179, 177, 171, 157, 154, 139, 122, 109, 87, 77, 67, 48, 49, 51, 54, 63, 72, 95, 116, 123, 140, 155, 160, 158, 147, 142, 137, 120, 110, 106, 104, 108, 109, 113, 129, 142, 152, 160, 169, 184, 187, 178, 181, 184, 180, 172, 164, 165, 160, 141, 128, 117, 99, 85, 67, 55, 54, 50, 54, 61, 70, 95, 112, 121, 139, 153, 160, 155, 143, 142, 133, 114, 105, 102, 103, 104, 108, 121, 134, 144, 156, 166, 170, 175, 178, 175, 172, 171, 174, 174, 168, 168, 168, 156, 142, 127, 110, 94, 74, 61, 54, 46, 52, 60, 69, 87, 108, 129, 142, 147, 155, 155, 140, 124, 114, 105, 96, 89, 92, 105, 118, 128, 143, 155, 170, 178, 171, 171, 173, 169, 164, 154, 163, 178, 172, 170, 173, 174, 167, 137, 118, 113, 89, 66, 48, 44, 51, 44, 49, 72, 92, 115, 128, 139, 157, 158, 150, 138, 123, 117, 107, 93, 90, 98, 112, 121, 127, 145, 166, 174, 168, 168, 175, 173, 162, 157, 169, 182, 182, 182, 185, 188, 178, 147, 123, 108, 84, 56, 31, 27, 37, 34, 38, 66, 100, 122, 132, 152, 171, 167, 151, 136, 127, 111, 89, 82, 86, 91, 99, 113, 133, 148, 162, 174, 177, 179, 177, 175, 174, 168, 177, 188, 186, 193, 195, 188, 175, 151, 133, 107, 75, 59, 40, 28, 28, 27, 44, 62, 79, 110, 129, 143, 157, 156, 150, 139, 124, 111, 95, 88, 91, 90, 100, 118, 134, 151, 162, 171, 181, 175, 167, 168, 163, 164, 170, 181, 196, 200, 204, 204, 187, 165, 138, 113, 84, 49, 37, 30, 19, 27, 41, 65, 90, 106, 129, 146, 153, 150, 136, 131, 122, 103, 96, 92, 98, 105, 102, 118, 137, 143, 150, 152, 162, 165, 152, 159, 165, 168, 188, 193, 207, 222, 210, 207, 186, 155, 139, 105, 84, 71, 52, 59, 51, 47, 65, 67, 82, 90, 96, 121, 115, 117, 126, 111, 117, 111, 100, 108, 103, 112, 115, 115, 139, 144, 149, 163, 163, 170, 163, 154, 165, 162, 164, 180, 192, 205, 205, 201, 199, 173, 147, 129, 104, 85, 70, 56, 57, 53, 50, 60, 67, 82, 92, 100, 119, 117, 121, 126, 111, 116, 113, 105, 112, 107, 122, 131, 125, 147, 154, 152, 159, 151, 154, 147, 141, 153, 155, 174, 194, 201, 219, 216, 206, 194, 162, 138, 112, 87, 72, 55, 51, 52, 47, 57, 65, 73, 91, 100, 108, 123, 126, 126, 128, 123, 121, 119, 117, 116, 114, 127, 130, 128, 143, 148, 150, 148, 141, 149, 142, 139, 153, 160, 181, 196, 202, 215, 208, 200, 177, 148, 135, 103, 80, 73, 54, 53, 54, 53, 63, 71, 88, 98, 107, 121, 124, 130, 127, 123, 126, 119, 117, 118, 119, 123, 124, 134, 138, 140, 150, 150, 146, 142, 141, 137, 131, 143, 149, 163, 184, 189, 202, 206, 195, 185, 161, 143, 123, 94, 81, 67, 55, 54, 53, 62, 69, 86, 102, 105, 122, 131, 125, 125, 124, 120, 114, 112, 117, 118, 120, 126, 135, 141, 144, 150, 152, 153, 145, 137, 140, 131, 132, 143, 149, 168, 181, 190, 200, 198, 192, 172, 153, 139, 109, 91, 79, 62, 58, 57, 59, 66, 81, 94, 100, 115, 124, 125, 125, 121, 123, 118, 114, 120, 120, 122, 131, 136, 138, 140, 151, 148, 141, 146, 137, 134, 132, 126, 137, 145, 155, 170, 182, 199, 198, 192, 188, 167, 150, 128, 103, 91, 77, 64, 58, 63, 67, 67, 85, 95, 100, 117, 120, 119, 126, 123, 117, 118, 118, 116, 120, 125, 128, 135, 137, 143, 148, 143, 145, 147, 139, 135, 137, 140, 138, 149, 164, 167, 181, 191, 186, 186, 177, 159, 144, 128, 110, 92, 84, 72, 64, 67, 63, 68, 82, 85, 96, 110, 114, 119, 122, 124, 119, 120, 124, 120, 127, 136, 136, 144, 149, 151, 151, 149, 148, 141, 137, 136, 130, 131, 135, 140, 150, 156, 168, 182, 177, 178, 181, 161, 148, 139, 115, 101, 92, 76, 70, 70, 69, 69, 78, 89, 94, 106, 115, 117, 126, 124, 122, 127, 123, 124, 128, 129, 133, 135, 138, 141, 140, 146, 146, 144, 147, 145, 141, 141, 141, 143, 146, 153, 162, 166, 170, 173, 167, 156, 148, 136, 118, 108, 99, 87, 82, 80, 77, 77, 82, 88, 91, 98, 108, 109, 114, 121, 121, 124, 129, 130, 134, 136, 138, 139, 138, 140, 140, 142, 144, 143, 148, 145, 142, 144, 138, 139, 143, 142, 151, 153, 155, 163, 158, 156, 157, 145, 136, 131, 119, 107, 101, 93, 82, 81, 81, 78, 83, 90, 93, 101, 108, 113, 120, 124, 128, 134, 133, 137, 140, 136, 138, 139, 135, 138, 139, 140, 141, 140, 144, 142, 141, 145, 142, 143, 148, 148, 152, 156, 158, 158, 158, 153, 146, 141, 129, 116, 108, 96, 86, 83, 80, 77, 81, 89, 90, 98, 109, 110, 116, 122, 122, 126, 127, 129, 130, 131, 135, 133, 136, 138, 136, 144, 142, 144, 152, 145, 146, 148, 139, 141, 143, 141, 146, 152, 154, 156, 160, 158, 152, 150, 140, 130, 122, 110, 101, 94, 86, 83, 83, 84, 88, 94, 99, 103, 107, 112, 114, 114, 120, 123, 124, 130, 132, 131, 135, 136, 138, 143, 148, 151, 153, 154, 151, 150, 148, 142, 143, 139, 137, 142, 139, 142, 146, 145, 147, 147, 145, 140, 132, 126, 114, 105, 102, 93, 94, 96, 94, 100, 102, 103, 105, 105, 107, 109, 112, 115, 115, 119, 119, 119, 125, 127, 132, 140, 142, 147, 151, 152, 156, 155, 152, 152, 147, 144, 142, 137, 138, 140, 139, 143, 145, 145, 146, 142, 139, 137, 131, 126, 122, 116, 108, 104, 99, 94, 93, 93, 93, 99, 103, 105, 110, 111, 111, 114, 116, 118, 124, 126, 130, 135, 136, 141, 147, 148, 150, 150, 149, 150, 145, 142, 144, 144, 145, 145, 145, 146, 142, 140, 141, 139, 140, 138, 136, 133, 126, 121, 116, 109, 106, 102, 101, 101, 99, 99, 100, 98, 99, 101, 106, 110, 112, 119, 122, 123, 125, 127, 132, 135, 135, 140, 143, 144, 146, 146, 148, 152, 152, 152, 152, 148, 144, 143, 141, 140, 142, 142, 141, 140, 136, 134, 132, 127, 123, 120, 116, 111, 107, 103, 99, 97, 96, 98, 102, 103, 107, 110, 112, 114, 114, 117, 123, 124, 126, 131, 134, 136, 137, 138, 142, 145, 148, 153, 152, 151, 151, 148, 147, 146, 143, 142, 138, 136, 134, 134, 137, 136, 137, 137, 132, 130, 123, 115, 112, 106, 101, 101, 99, 99, 98, 100, 102, 102, 106, 108, 112, 118, 118, 122, 126, 127, 129, 131, 134, 139, 144, 147, 149, 149, 148, 148, 149, 146, 145, 144, 140, 137, 136, 136, 139, 141, 141, 142, 142, 141, 137, 133, 130, 124, 119, 116, 111, 106, 103, 100, 99, 100, 101, 103, 106, 107, 110, 113, 113, 113, 116, 118, 118, 125, 130, 133, 138, 140, 143, 148, 150, 154, 154, 153, 152, 148, 144, 141, 141, 139, 137, 139, 142, 142, 143, 143, 140, 137, 132, 126, 120, 114, 109, 105, 102, 100, 101, 101, 99, 100, 104, 105, 105, 107, 110, 111, 112, 116, 122, 125, 127, 131, 136, 138, 142, 147, 149, 149, 149, 151, 149, 146, 146, 145, 141, 141, 145, 147, 146, 146, 148, 147, 142, 139, 137, 130, 124, 118, 112, 107, 102, 97, 94, 93, 95, 96, 98, 102, 106, 108, 108, 112, 116, 117, 119, 124, 129, 132, 136, 142, 145, 144, 145, 149, 148, 147, 148, 149, 147, 146, 147, 146, 144, 144, 147, 147, 145, 148, 150, 146, 139, 134, 130, 121, 112, 106, 100, 92, 88, 88, 88, 88, 92, 98, 103, 107, 111, 114, 117, 120, 123, 125, 129, 133, 134, 133, 134, 139, 143, 143, 145, 149, 153, 154, 152, 150, 147, 146, 145, 145, 145, 147, 149, 149, 150, 147, 143, 138, 129, 121, 115, 108, 102, 96, 90, 86, 87, 91, 94, 98, 102, 108, 114, 117, 117, 119, 124, 124, 124, 126, 131, 136, 133, 133, 135, 136, 142, 149, 153, 151, 150, 152, 148, 143, 145, 150, 150, 150, 153, 153, 151, 144, 141, 137, 130, 124, 115, 109, 105, 97, 93, 92, 90, 94, 98, 100, 102, 104, 107, 111, 116, 116, 120, 126, 131, 132, 126, 126, 128, 134, 138, 141, 149, 145, 145, 150, 147, 145, 148, 152, 148, 149, 152, 153, 155, 152, 151, 145, 141, 137, 130, 124, 112, 106, 97, 93, 94, 90, 92, 95, 97, 95, 97, 105, 113, 117, 117, 126, 125, 124, 126, 124, 128, 129, 135, 137, 139, 143, 143, 147, 148, 146, 144, 152, 152, 148, 150, 146, 153, 158, 156, 157, 157, 150, 140, 133, 123, 114, 99, 93, 97, 87, 86, 94, 107, 96, 83, 102, 114, 111, 103, 110, 120, 121, 126, 124, 133, 132, 134, 142, 141, 146, 134, 140, 150, 143, 138, 140, 155, 151, 146, 148, 150, 161, 157, 154, 156, 154, 144, 132, 131, 124, 117, 108, 106, 106, 86, 76, 83, 85, 89, 99, 105, 105, 107, 118, 119, 115, 123, 121, 127, 139, 137, 138, 139, 136, 135, 143, 143, 142, 148, 149, 153, 143, 143, 152, 142, 150, 162, 168, 166, 157, 155, 146, 137, 132, 125, 111, 94, 88, 82, 78, 72, 78, 90, 91, 98, 107, 119, 126, 115, 112, 118, 117, 118, 126, 128, 130, 137, 137, 139, 153, 158, 150, 150, 148, 140, 151, 172, 179, 180, 180, 184, 178, 152, 135, 127, 117, 99, 85, 92, 95, 86, 78, 83, 85, 85, 102, 118, 125, 109, 114, 128, 112, 110, 112, 119, 120, 108, 117, 127, 130, 130, 137, 143, 150, 153, 142, 146, 138, 140, 178, 199, 195, 198, 211, 199, 157, 132, 119, 96, 94, 104, 104, 104, 92, 84, 75, 63, 67, 83, 102, 106, 121, 129, 123, 119, 104, 119, 119, 105, 105, 116, 139, 128, 136, 145, 146, 152, 133, 138, 136, 136, 143, 164, 214, 216, 200, 207, 222, 172, 93, 98, 126, 127, 106, 113, 128, 96, 72, 62, 59, 56, 58, 91, 120, 117, 120, 138, 118, 100, 103, 109, 125, 119, 123, 136, 139, 135, 146, 156, 142, 135, 131, 132, 119, 110, 129, 154, 209, 231, 222, 221, 205, 167, 111, 93, 114, 135, 127, 117, 115, 85, 60, 42, 44, 67, 93, 125, 132, 129, 121, 114, 103, 94, 105, 100, 110, 125, 132, 131, 128, 134, 129, 149, 147, 133, 146, 145, 134, 112, 128, 181, 223, 244, 217, 197, 184, 148, 102, 79, 105, 136, 139, 111, 93, 85, 52, 50, 68, 77, 107, 125, 136, 138, 112, 99, 103, 115, 118, 103, 115, 130, 122, 114, 129, 137, 131, 147, 150, 137, 131, 134, 135, 115, 150, 217, 242, 240, 205, 183, 166, 120, 88, 99, 132, 137, 119, 101, 85, 71, 43, 43, 72, 96, 124, 137, 126, 109, 106, 115, 117, 134, 129, 100, 97, 104, 122, 132, 138, 148, 146, 151, 132, 124, 138, 127, 107, 117, 182, 240, 248, 219, 194, 181, 136, 100, 88, 119, 156, 129, 104, 101, 90, 70, 59, 72, 98, 108, 96, 107, 104, 102, 121, 127, 126, 101, 93, 97, 98, 116, 133, 151, 148, 137, 132, 138, 132, 123, 152, 147, 146, 182, 207, 221, 218, 201, 168, 146, 138, 123, 114, 120, 133, 116, 90, 82, 90, 85, 71, 79, 91, 102, 89, 90, 110, 117, 118, 112, 120, 108, 106, 120, 116, 119, 116, 142, 139, 124, 136, 133, 150, 137, 136, 150, 162, 215, 221, 204, 195, 185, 141, 110, 143, 147, 141, 123, 112, 127, 101, 73, 60, 81, 109, 96, 92, 102, 106, 97, 93, 103, 116, 109, 98, 115, 123, 116, 105, 105, 122, 131, 114, 119, 159, 165, 147, 125, 140, 185, 205, 222, 213, 194, 181, 164, 154, 145, 156, 135, 104, 97, 84, 77, 77, 98, 109, 102, 90, 76, 87, 88, 84, 92, 112, 131, 123, 111, 104, 108, 111, 102, 118, 142, 140, 139, 156, 153, 142, 141, 147, 182, 200, 194, 188, 180, 178, 167, 147, 136, 135, 136, 130, 104, 77, 88, 110, 114, 106, 91, 92, 85, 74, 87, 91, 103, 120, 116, 108, 91, 95, 118, 129, 138, 142, 141, 137, 146, 137, 125, 141, 146, 170, 191, 181, 170, 176, 194, 172, 147, 151, 150, 145, 124, 113, 116, 114, 106, 85, 76, 82, 89, 91, 86, 89, 91, 87, 100, 113, 115, 118, 120, 121, 117, 120, 117, 129, 161, 160, 150, 131, 136, 163, 160, 167, 163, 168, 187, 175, 160, 151, 153, 135, 132, 138, 118, 114, 115, 128, 111, 89, 101, 98, 99, 84, 74, 88, 96, 105, 111, 112, 108, 114, 107, 105, 124, 130, 140, 148, 150, 142, 126, 120, 134, 160, 165, 167, 171, 173, 164, 154, 166, 167, 163, 148, 126, 117, 115, 121, 115, 124, 138, 124, 95, 68, 67, 72, 87, 108, 124, 136, 127, 105, 80, 83, 96, 115, 137, 137, 146, 148, 130, 113, 115, 130, 152, 176, 178, 180, 168, 160, 167, 156, 159, 158, 149, 132, 116, 123, 109, 106, 124, 137, 122, 97, 93, 88, 99, 95, 88, 112, 122, 122, 99, 83, 97, 109, 123, 134, 141, 147, 146, 136, 127, 138, 145, 144, 153, 164, 166, 153, 142, 149, 157, 152, 135, 126, 141, 144, 129, 109, 112, 129, 119, 106, 110, 116, 109, 94, 95, 93, 100, 111, 109, 118, 123, 120, 117, 122, 126, 127, 136, 141, 149, 152, 146, 146, 142, 147, 151, 142, 143, 145, 143, 137, 129, 132, 134, 127, 125, 122, 119, 118, 117, 114, 113, 112, 114, 118, 115, 118, 121, 118, 120, 116, 118, 125, 122, 123, 134, 138, 133, 133, 136, 141, 139, 133, 131, 132, 132, 128, 128, 129, 130, 133, 132, 131, 128, 126, 127, 133, 139, 131, 129, 130, 126, 122, 120, 125, 123, 124, 120, 118, 125, 128, 128, 120, 120, 128, 126, 123, 124, 126, 128, 128, 124, 125, 130, 131, 130, 130, 131, 129, 123, 122, 127, 130, 130, 133, 134, 137, 134, 130, 132, 130, 130, 122, 121, 130, 132, 133, 129, 126, 121, 125, 129, 126, 132, 131, 129, 124, 121, 126, 123, 124, 125, 126, 125, 122, 124, 125, 129, 129, 128, 128, 128, 129, 127, 128, 132, 134, 134, 130, 126, 127, 126, 124, 124, 125, 127, 127, 128, 128, 126, 126, 129, 128, 125, 127, 132, 131, 128, 126, 125, 129, 130, 130, 130, 129, 127, 124, 124, 125, 125, 126, 128, 128, 127, 126, 125, 124, 126, 126, 128, 132, 135, 134, 128, 125, 124, 123, 124, 126, 127, 127, 128, 129, 131, 132, 132, 130, 130, 128, 126, 127, 129, 128, 126, 125, 125, 127, 130, 131, 131, 128, 126, 125, 124, 123, 126, 126, 123, 123, 126, 129, 131, 131, 130, 131, 131, 128, 128, 131, 131, 128, 126, 127, 130, 131, 129, 129, 130, 125, 121, 122, 125, 125, 124, 124, 124, 125, 125, 125, 127, 130, 132, 129, 126, 128, 129, 127, 128, 130, 128, 126, 125, 125, 127, 130, 132, 134, 136, 131, 125, 126, 128, 123, 122, 127, 129, 126, 126, 130, 130, 125, 125, 132, 133, 128, 128, 131, 129, 123, 123, 127, 129, 127, 128, 127, 124, 126, 131, 129, 127, 129, 127, 121, 122, 125, 123, 125, 129, 129, 129, 129, 128, 127, 127, 123, 122, 126, 128, 129, 130, 131, 131, 130, 131, 133, 131, 130, 132, 133, 130, 128, 126, 122, 121, 124, 127, 130, 132, 132, 130, 124, 118, 119, 122, 122, 123, 125, 126, 125, 123, 125, 128, 128, 125, 131, 136, 132, 130, 137, 139, 134, 135, 137, 132, 125, 121, 119, 116, 114, 121, 130, 130, 126, 130, 132, 126, 122, 124, 125, 124, 125, 129, 130, 129, 130, 131, 131, 133, 133, 130, 135, 138, 130, 126, 131, 128, 121, 123, 126, 123, 126, 128, 124, 122, 121, 119, 121, 125, 121, 120, 128, 130, 127, 129, 136, 137, 132, 131, 133, 131, 128, 129, 129, 125, 122, 122, 125, 128, 128, 130, 135, 135, 132, 133, 130, 124, 128, 131, 125, 127, 133, 126, 119, 122, 123, 122, 128, 132, 127, 121, 115, 112, 112, 113, 120, 130, 136, 138, 141, 140, 139, 140, 140, 138, 138, 133, 126, 120, 115, 112, 115, 121, 127, 132, 131, 129, 130, 128, 125, 127, 131, 131, 130, 129, 128, 128, 125, 127, 131, 128, 126, 130, 125, 115, 117, 118, 114, 122, 131, 128, 130, 138, 135, 129, 133, 136, 135, 134, 134, 134, 131, 123, 119, 117, 113, 112, 120, 128, 129, 130, 134, 137, 133, 132, 138, 137, 130, 132, 131, 119, 116, 120, 118, 122, 129, 128, 131, 138, 130, 121, 127, 126, 118, 124, 130, 126, 126, 130, 128, 125, 126, 125, 124, 126, 125, 121, 121, 124, 121, 116, 123, 136, 138, 145, 163, 170, 160, 155, 152, 138, 119, 110, 113, 116, 107, 107, 118, 115, 100, 105, 114, 107, 104, 112, 112, 107, 107, 110, 117, 120, 119, 125, 133, 135, 142, 159, 176, 191, 204, 211, 209, 194, 166, 140, 117, 91, 75, 73, 74, 77, 86, 93, 100, 108, 113, 118, 123, 125, 126, 125, 122, 119, 114, 107, 110, 116, 118, 126, 136, 133, 128, 125, 111, 106, 120, 129, 144, 185, 216, 221, 231, 241, 215, 176, 154, 132, 94, 63, 55, 53, 43, 46, 73, 95, 102, 117, 136, 137, 124, 119, 122, 114, 101, 105, 118, 114, 113, 130, 137, 132, 137, 140, 132, 128, 122, 111, 117, 128, 132, 157, 196, 212, 222, 243, 240, 205, 177, 156, 115, 73, 58, 53, 37, 33, 56, 74, 78, 101, 130, 134, 131, 137, 131, 112, 102, 102, 102, 105, 115, 130, 138, 140, 147, 151, 144, 142, 139, 121, 110, 111, 105, 109, 143, 176, 196, 225, 249, 239, 212, 190, 162, 120, 84, 71, 60, 40, 39, 61, 70, 77, 108, 134, 133, 136, 144, 129, 107, 105, 104, 94, 97, 114, 121, 119, 132, 146, 139, 135, 146, 142, 125, 124, 125, 114, 115, 129, 143, 165, 191, 208, 224, 231, 214, 191, 169, 136, 102, 82, 67, 58, 57, 57, 66, 82, 92, 103, 126, 142, 139, 137, 138, 124, 102, 95, 98, 94, 94, 109, 120, 119, 126, 133, 128, 130, 136, 128, 125, 137, 135, 130, 148, 167, 172, 188, 211, 222, 219, 212, 202, 182, 145, 109, 90, 69, 43, 41, 57, 64, 71, 94, 117, 125, 128, 137, 140, 126, 111, 105, 94, 82, 84, 90, 95, 109, 121, 125, 136, 148, 148, 148, 155, 153, 143, 136, 138, 142, 146, 160, 188, 205, 206, 213, 213, 186, 159, 145, 121, 94, 81, 72, 60, 58, 62, 70, 84, 98, 110, 121, 125, 124, 122, 114, 106, 103, 98, 92, 95, 102, 107, 117, 133, 148, 155, 158, 163, 160, 148, 143, 142, 136, 138, 149, 152, 160, 178, 182, 181, 192, 188, 168, 159, 148, 118, 97, 90, 72, 58, 62, 68, 70, 81, 99, 109, 116, 124, 130, 127, 123, 122, 118, 111, 111, 113, 113, 116, 124, 132, 138, 141, 145, 152, 149, 143, 151, 153, 142, 143, 150, 142, 140, 152, 156, 156, 164, 166, 155, 147, 139, 125, 114, 108, 103, 98, 92, 90, 91, 92, 98, 108, 118, 125, 128, 124, 120, 116, 106, 103, 111, 113, 113, 122, 128, 123, 121, 128, 131, 129, 132, 143, 148, 144, 147, 155, 152, 145, 148, 150, 150, 153, 157, 162, 170, 165, 155, 154, 146, 123, 111, 111, 102, 88, 88, 93, 91, 86, 92, 104, 106, 102, 110, 118, 110, 104, 114, 119, 113, 115, 126, 129, 122, 126, 136, 135, 135, 148, 156, 154, 159, 162, 154, 152, 152, 145, 143, 150, 148, 149, 157, 154, 148, 150, 143, 129, 127, 124, 110, 102, 101, 94, 82, 81, 88, 88, 88, 99, 111, 109, 107, 116, 120, 114, 115, 123, 126, 122, 121, 129, 134, 131, 137, 153, 157, 154, 161, 163, 155, 151, 150, 147, 148, 148, 146, 150, 152, 147, 144, 147, 142, 134, 131, 130, 124, 113, 107, 104, 94, 80, 79, 84, 82, 86, 101, 111, 114, 117, 122, 122, 119, 119, 123, 123, 120, 123, 125, 124, 129, 139, 147, 155, 163, 165, 165, 161, 152, 150, 150, 143, 141, 147, 145, 139, 142, 145, 142, 141, 142, 138, 130, 122, 114, 105, 96, 92, 92, 89, 88, 95, 99, 98, 103, 111, 112, 112, 115, 117, 115, 115, 118, 121, 123, 131, 140, 142, 146, 156, 156, 151, 154, 157, 151, 148, 150, 148, 145, 144, 141, 142, 145, 144, 144, 148, 146, 139, 134, 128, 119, 111, 107, 104, 100, 97, 97, 96, 93, 95, 101, 103, 104, 108, 112, 112, 112, 114, 119, 123, 124, 129, 137, 140, 141, 146, 149, 151, 154, 154, 151, 151, 148, 143, 140, 141, 142, 141, 140, 144, 146, 143, 141, 143, 139, 132, 130, 125, 116, 111, 109, 103, 99, 101, 101, 100, 102, 105, 106, 107, 107, 108, 109, 111, 113, 117, 123, 129, 131, 133, 137, 139, 138, 138, 142, 146, 147, 147, 150, 150, 146, 144, 145, 142, 139, 141, 143, 139, 140, 144, 141, 137, 140, 139, 130, 125, 123, 115, 107, 103, 99, 95, 95, 96, 95, 98, 103, 105, 109, 116, 120, 122, 126, 129, 128, 127, 128, 128, 129, 132, 136, 141, 146, 149, 152, 155, 155, 152, 152, 151, 146, 141, 141, 138, 133, 133, 135, 133, 132, 134, 133, 129, 125, 121, 115, 109, 105, 100, 96, 94, 93, 93, 97, 101, 106, 113, 122, 126, 129, 132, 133, 130, 130, 130, 129, 131, 135, 137, 140, 145, 148, 149, 151, 154, 154, 153, 151, 150, 147, 142, 138, 136, 134, 131, 129, 127, 123, 121, 120, 114, 110, 110, 108, 101, 101, 104, 103, 101, 106, 109, 111, 115, 117, 119, 125, 127, 126, 132, 138, 134, 136, 144, 141, 136, 145, 149, 140, 140, 150, 146, 135, 138, 146, 141, 132, 137, 144, 136, 124, 127, 131, 119, 110, 119, 120, 108, 111, 119, 112, 108, 119, 120, 111, 118, 127, 120, 117, 126, 126, 121, 125, 128, 126, 127, 129, 126, 128, 133, 133, 134, 138, 140, 141, 141, 139, 137, 140, 140, 134, 134, 140, 138, 129, 128, 134, 130, 120, 123, 129, 123, 117, 120, 119, 114, 116, 118, 114, 119, 126, 123, 122, 129, 130, 127, 128, 127, 127, 128, 122, 118, 125, 125, 120, 130, 139, 132, 137, 148, 134, 127, 144, 139, 118, 130, 145, 125, 117, 135, 131, 117, 124, 128, 120, 125, 126, 116, 120, 129, 120, 118, 131, 131, 124, 129, 131, 124, 125, 130, 127, 125, 130, 136, 132, 125, 133, 141, 127, 119, 135, 134, 112, 121, 137, 121, 118, 143, 136, 118, 138, 145, 119, 122, 144, 131, 117, 131, 131, 121, 124, 121, 120, 133, 129, 115, 127, 133, 109, 108, 127, 118, 112, 133, 136, 123, 135, 142, 124, 125, 139, 130, 122, 130, 128, 123, 129, 131, 132, 146, 152, 143, 143, 148, 137, 120, 123, 131, 116, 108, 129, 130, 98, 114, 155, 122, 91, 155, 165, 71, 77, 162, 104, 28, 129, 190, 88, 89, 202, 158, 60, 132, 190, 106, 99, 195, 180, 107, 143, 181, 122, 97, 145, 145, 105, 121, 144, 119, 110, 137, 133, 118, 144, 150, 117, 119, 138, 110, 94, 124, 122, 98, 119, 128, 99, 114, 145, 123, 122, 167, 153, 110, 125, 129, 84, 83, 115, 112, 119, 153, 156, 156, 174, 159, 143, 164, 149, 110, 128, 138, 85, 81, 131, 114, 85, 138, 170, 131, 130, 167, 152, 120, 131, 141, 123, 111, 116, 113, 100, 98, 107, 109, 109, 128, 141, 132, 136, 154, 139, 123, 139, 137, 113, 122, 136, 116, 116, 140, 129, 120, 146, 147, 126, 143, 154, 128, 127, 146, 125, 104, 124, 124, 98, 104, 127, 122, 113, 128, 143, 137, 126, 130, 137, 125, 107, 117, 128, 115, 112, 134, 139, 127, 135, 146, 137, 131, 138, 141, 137, 138, 142, 143, 137, 129, 129, 126, 116, 113, 117, 114, 113, 117, 116, 117, 125, 122, 119, 130, 131, 118, 121, 128, 116, 110, 119, 119, 114, 121, 127, 129, 133, 131, 135, 147, 140, 129, 151, 157, 128, 136, 173, 157, 133, 173, 193, 149, 138, 168, 141, 90, 96, 111, 84, 69, 95, 111, 97, 92, 111, 119, 101, 96, 117, 117, 95, 97, 113, 102, 91, 111, 126, 125, 136, 153, 153, 152, 157, 157, 159, 170, 180, 187, 197, 202, 201, 198, 186, 172, 162, 139, 107, 90, 77, 47, 35, 53, 61, 60, 83, 110, 110, 108, 117, 118, 109, 102, 99, 100, 97, 86, 89, 111, 120, 121, 150, 177, 166, 160, 176, 168, 149, 163, 185, 189, 205, 225, 219, 209, 202, 171, 137, 125, 102, 66, 57, 58, 43, 39, 60, 77, 88, 110, 126, 132, 136, 124, 108, 103, 92, 72, 68, 83, 86, 86, 110, 137, 147, 151, 161, 172, 162, 147, 154, 170, 175, 185, 217, 242, 238, 228, 222, 196, 155, 118, 89, 67, 46, 27, 27, 45, 51, 54, 84, 119, 125, 124, 142, 153, 127, 99, 106, 105, 72, 64, 98, 113, 96, 119, 168, 158, 139, 168, 176, 148, 149, 176, 179, 178, 205, 219, 213, 214, 204, 180, 153, 127, 94, 66, 48, 35, 34, 37, 50, 76, 91, 102, 122, 137, 127, 122, 132, 119, 98, 105, 103, 88, 95, 107, 109, 123, 142, 146, 151, 169, 163, 154, 180, 182, 175, 208, 221, 211, 219, 225, 195, 164, 161, 121, 71, 65, 47, 10, 12, 36, 37, 51, 89, 110, 122, 132, 142, 144, 131, 128, 121, 116, 105, 94, 104, 101, 99, 121, 136, 141, 159, 175, 164, 165, 179, 166, 158, 181, 191, 173, 184, 206, 178, 156, 166, 150, 108, 98, 99, 69, 50, 55, 62, 60, 64, 94, 113, 115, 128, 147, 151, 131, 133, 138, 111, 98, 99, 99, 92, 93, 114, 125, 127, 134, 146, 155, 143, 143, 166, 163, 151, 170, 180, 170, 165, 171, 178, 158, 150, 159, 142, 123, 111, 108, 99, 78, 87, 94, 89, 94, 107, 115, 106, 117, 125, 109, 111, 114, 106, 93, 100, 114, 95, 105, 132, 123, 126, 143, 150, 150, 152, 159, 162, 163, 156, 151, 160, 158, 139, 149, 170, 151, 140, 161, 156, 132, 123, 127, 120, 94, 89, 102, 94, 78, 87, 106, 98, 93, 109, 117, 107, 105, 116, 115, 110, 118, 121, 128, 136, 138, 145, 155, 161, 155, 156, 163, 155, 141, 144, 151, 134, 132, 150, 138, 135, 141, 137, 132, 123, 129, 124, 111, 121, 118, 112, 112, 114, 120, 109, 109, 122, 113, 102, 109, 114, 102, 100, 109, 114, 116, 111, 128, 144, 132, 133, 152, 151, 132, 140, 155, 139, 134, 149, 146, 136, 141, 141, 133, 143, 140, 130, 145, 140, 127, 131, 131, 126, 119, 124, 128, 122, 123, 122, 115, 116, 114, 100, 108, 121, 100, 105, 124, 116, 106, 113, 136, 118, 112, 148, 132, 124, 142, 137, 132, 132, 139, 132, 134, 144, 135, 143, 143, 141, 143, 131, 138, 132, 126, 128, 127, 137, 120, 124, 140, 115, 116, 129, 120, 119, 125, 128, 127, 123, 125, 124, 118, 124, 120, 121, 132, 121, 126, 130, 127, 127, 121, 136, 127, 119, 136, 126, 120, 123, 129, 125, 118, 135, 131, 126, 135, 133, 133, 132, 133, 133, 133, 129, 127, 136, 125, 126, 137, 129, 126, 131, 131, 119, 123, 126, 116, 121, 120, 125, 120, 120, 131, 122, 128, 125, 131, 137, 115, 136, 141, 119, 130, 143, 133, 121, 137, 136, 121, 123, 132, 138, 117, 134, 147, 121, 134, 133, 128, 127, 115, 134, 119, 112, 130, 114, 121, 126, 117, 135, 134, 120, 134, 134, 115, 112, 121, 118, 99, 119, 137, 113, 129, 147, 137, 135, 141, 149, 134, 133, 145, 134, 128, 133, 138, 122, 126, 137, 120, 125, 127, 127, 120, 117, 136, 115, 122, 140, 118, 137, 133, 123, 138, 122, 120, 126, 120, 118, 120, 126, 125, 120, 130, 134, 117, 130, 138, 119, 129, 135, 125, 125, 123, 131, 122, 116, 132, 132, 119, 127, 143, 126, 125, 143, 131, 133, 134, 131, 142, 120, 125, 136, 112, 124, 122, 126, 135, 113, 147, 141, 113, 150, 132, 120, 133, 122, 129, 118, 123, 130, 117, 126, 123, 125, 129, 125, 127, 133, 130, 121, 135, 127, 121, 132, 119, 133, 120, 116, 137, 109, 118, 126, 115, 126, 121, 136, 132, 127, 148, 129, 130, 143, 125, 127, 136, 126, 124, 134, 129, 122, 129,
};
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
const int inputPin = 3; // choose the input pin (for PIR sensor)
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
int pirState = LOW; // we start, assuming no motion detected
int val; // variable for reading the pin status
void setup() {
Serial.begin(9600);
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
val = digitalRead(inputPin); // read input value
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
startPlayback(sample, sizeof(sample));
} else if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
startPlayback(sample, sizeof(sample));
// We only want to print on the output change, not state
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
if (pirState == HIGH){
// we have just turned of
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;
}
}
}
Final Video:
#include <PCM.h>
const unsigned char sample[] PROGMEM = {
126, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 127, 128, 127, 127, 128, 128, 128, 127, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 128, 127, 128, 129, 128, 129, 128, 128, 128, 128, 129, 128, 129, 128, 128, 128, 127, 126, 126, 126, 126, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 127, 128, 128, 128, 126, 127, 127, 126, 127, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 128, 127, 128, 129, 128, 128, 129, 128, 127, 128, 128, 127, 128, 128, 127, 126, 127, 126, 125, 126, 126, 126, 125, 127, 127, 126, 128, 128, 127, 128, 129, 128, 128, 129, 129, 128, 129, 128, 128, 128, 127, 128, 128, 128, 129, 129, 128, 128, 129, 128, 127, 129, 128, 127, 128, 128, 127, 126, 127, 126, 126, 127, 127, 126, 126, 128, 127, 126, 127, 127, 126, 127, 128, 127, 128, 128, 128, 128, 128, 129, 128, 128, 129, 128, 129, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 128, 128, 127, 127, 128, 128, 128, 129, 128, 127, 128, 127, 126, 127, 127, 127, 126, 128, 127, 126, 128, 127, 126, 127, 127, 128, 127, 128, 129, 128, 128, 129, 129, 129, 130, 129, 128, 128, 128, 126, 126, 126, 125, 126, 126, 127, 127, 127, 128, 127, 128, 127, 127, 130, 127, 129, 130, 128, 129, 128, 128, 127, 128, 129, 126, 128, 128, 127, 127, 127, 128, 126, 128, 128, 126, 129, 128, 128, 128, 128, 128, 128, 129, 129, 129, 128, 129, 127, 126, 127, 125, 126, 125, 125, 126, 125, 127, 125, 127, 127, 126, 127, 127, 128, 127, 130, 129, 127, 130, 127, 128, 129, 128, 129, 128, 129, 127, 128, 127, 126, 127, 126, 127, 126, 128, 127, 127, 130, 126, 129, 129, 128, 130, 129, 129, 128, 129, 128, 127, 128, 127, 128, 127, 127, 128, 126, 128, 128, 126, 128, 127, 128, 128, 128, 129, 128, 128, 129, 127, 129, 128, 127, 129, 127, 127, 128, 126, 125, 126, 126, 124, 126, 126, 124, 127, 127, 126, 128, 128, 129, 127, 128, 130, 126, 128, 129, 127, 127, 128, 129, 127, 128, 130, 126, 128, 128, 127, 127, 128, 128, 127, 129, 129, 127, 129, 129, 128, 130, 128, 129, 130, 127, 129, 128, 127, 127, 127, 127, 125, 127, 126, 125, 127, 125, 126, 127, 127, 127, 128, 129, 127, 128, 129, 128, 129, 129, 130, 129, 130, 130, 129, 128, 128, 128, 126, 127, 128, 125, 126, 128, 124, 125, 127, 125, 126, 128, 128, 128, 129, 130, 128, 129, 129, 128, 127, 128, 129, 126, 128, 127, 125, 127, 126, 127, 126, 128, 128, 127, 129, 128, 128, 128, 128, 128, 128, 129, 128, 129, 128, 126, 126, 125, 125, 125, 127, 128, 129, 128, 130, 129, 125, 129, 125, 126, 127, 125, 129, 125, 127, 129, 123, 126, 126, 124, 125, 127, 126, 126, 129, 129, 129, 130, 131, 133, 130, 131, 134, 128, 129, 130, 128, 127, 128, 133, 127, 128, 133, 123, 123, 122, 117, 116, 117, 120, 120, 125, 128, 132, 133, 134, 140, 134, 135, 139, 133, 133, 134, 131, 129, 129, 128, 127, 126, 125, 126, 123, 124, 124, 122, 125, 123, 126, 129, 126, 130, 132, 129, 128, 130, 129, 126, 129, 132, 127, 126, 134, 126, 118, 128, 120, 110, 122, 120, 113, 122, 129, 122, 127, 136, 130, 131, 134, 135, 132, 130, 137, 127, 129, 132, 126, 130, 124, 131, 128, 123, 135, 128, 128, 133, 133, 129, 132, 134, 124, 129, 123, 119, 120, 114, 119, 116, 120, 123, 125, 129, 130, 135, 130, 134, 133, 130, 131, 128, 131, 124, 131, 129, 123, 132, 125, 127, 127, 127, 127, 125, 129, 125, 130, 126, 128, 132, 122, 131, 128, 122, 130, 127, 125, 130, 131, 128, 131, 133, 131, 129, 131, 129, 122, 132, 125, 119, 133, 123, 121, 136, 125, 123, 137, 127, 125, 135, 129, 126, 131, 132, 126, 129, 133, 125, 128, 130, 125, 125, 128, 122, 126, 128, 119, 132, 126, 121, 133, 124, 127, 129, 128, 129, 126, 131, 129, 125, 126, 132, 120, 124, 135, 116, 129, 131, 121, 129, 126, 128, 123, 129, 127, 123, 131, 125, 128, 127, 129, 126, 127, 135, 123, 135, 133, 126, 135, 127, 129, 125, 125, 128, 120, 127, 126, 122, 128, 126, 125, 129, 128, 129, 132, 130, 131, 131, 129, 125, 126, 126, 120, 125, 127, 123, 126, 129, 128, 125, 130, 131, 127, 130, 135, 131, 130, 136, 131, 127, 132, 130, 126, 128, 130, 127, 128, 128, 130, 126, 125, 129, 124, 125, 125, 124, 123, 120, 126, 121, 121, 126, 124, 129, 128, 131, 133, 126, 129, 129, 121, 121, 125, 118, 117, 122, 118, 118, 120, 124, 122, 126, 135, 132, 140, 145, 145, 150, 149, 151, 151, 149, 147, 145, 144, 137, 134, 132, 124, 122, 121, 119, 117, 117, 121, 116, 116, 123, 114, 114, 118, 111, 112, 113, 111, 110, 110, 110, 107, 109, 108, 107, 112, 109, 112, 119, 120, 124, 137, 144, 147, 166, 172, 171, 186, 183, 173, 175, 163, 145, 139, 126, 106, 105, 93, 78, 85, 75, 72, 80, 77, 84, 93, 101, 110, 123, 134, 144, 157, 164, 173, 181, 182, 184, 186, 179, 170, 171, 157, 144, 147, 127, 121, 119, 104, 104, 96, 91, 94, 85, 89, 93, 91, 97, 105, 107, 113, 121, 124, 131, 134, 140, 145, 144, 151, 151, 149, 152, 148, 150, 146, 143, 148, 141, 140, 142, 135, 132, 128, 123, 117, 110, 108, 103, 98, 99, 96, 94, 97, 96, 97, 101, 103, 107, 114, 118, 121, 133, 134, 137, 151, 146, 150, 160, 151, 153, 155, 147, 147, 146, 142, 145, 145, 143, 150, 148, 143, 150, 140, 134, 136, 122, 119, 115, 103, 104, 97, 90, 96, 90, 89, 100, 98, 102, 115, 113, 123, 127, 126, 137, 130, 133, 141, 131, 138, 141, 135, 145, 146, 145, 156, 157, 158, 169, 166, 165, 174, 162, 157, 158, 143, 132, 126, 113, 97, 91, 80, 66, 69, 61, 61, 74, 73, 89, 101, 110, 125, 131, 142, 144, 148, 152, 146, 150, 148, 144, 144, 148, 148, 147, 161, 160, 165, 179, 171, 177, 180, 163, 161, 152, 130, 120, 107, 84, 76, 66, 51, 52, 51, 50, 63, 70, 83, 102, 111, 126, 145, 145, 153, 164, 154, 158, 157, 147, 147, 143, 139, 139, 143, 148, 151, 163, 170, 176, 182, 184, 184, 175, 166, 154, 136, 119, 100, 82, 66, 51, 45, 37, 37, 48, 52, 65, 88, 100, 118, 134, 146, 157, 160, 164, 162, 161, 156, 144, 151, 140, 135, 149, 141, 150, 165, 164, 179, 187, 190, 193, 193, 185, 175, 164, 140, 125, 107, 78, 62, 50, 34, 24, 27, 33, 35, 53, 73, 87, 109, 125, 143, 155, 158, 170, 167, 161, 165, 150, 145, 143, 130, 139, 132, 132, 159, 149, 161, 191, 181, 193, 206, 191, 192, 182, 157, 146, 122, 95, 77, 56, 42, 28, 22, 26, 26, 40, 57, 69, 94, 115, 131, 149, 163, 173, 176, 171, 173, 165, 146, 146, 136, 127, 128, 129, 141, 144, 163, 181, 180, 211, 208, 200, 218, 189, 174, 162, 127, 108, 80, 56, 38, 21, 17, 11, 16, 33, 44, 64, 92, 110, 133, 151, 159, 175, 171, 165, 167, 151, 145, 135, 126, 130, 126, 127, 144, 157, 162, 188, 203, 201, 226, 220, 206, 211, 184, 158, 139, 108, 78, 52, 31, 9, 3, 1, 0, 18, 39, 53, 83, 114, 133, 154, 169, 179, 182, 175, 174, 162, 150, 143, 128, 127, 124, 124, 138, 144, 162, 186, 195, 208, 229, 226, 215, 217, 192, 163, 143, 104, 76, 48, 21, 4, 0, 0, 0, 11, 43, 57, 86, 120, 138, 158, 174, 181, 180, 179, 174, 153, 148, 142, 117, 125, 124, 114, 149, 144, 160, 209, 191, 220, 246, 216, 234, 215, 180, 175, 131, 96, 72, 42, 15, 0, 0, 0, 0, 22, 32, 55, 99, 112, 136, 166, 173, 179, 184, 181, 168, 160, 148, 130, 130, 122, 112, 132, 142, 150, 175, 199, 215, 222, 235, 240, 219, 205, 189, 148, 116, 90, 45, 18, 4, 0, 0, 0, 0, 27, 54, 80, 120, 144, 162, 180, 191, 193, 178, 175, 167, 139, 131, 120, 114, 115, 110, 138, 150, 159, 202, 210, 221, 246, 235, 227, 217, 191, 161, 122, 92, 58, 23, 0, 0, 0, 0, 0, 27, 54, 80, 113, 145, 166, 177, 190, 193, 183, 174, 159, 145, 126, 114, 112, 99, 112, 132, 132, 167, 194, 204, 232, 236, 242, 242, 210, 197, 168, 120, 92, 52, 20, 0, 0, 0, 0, 0, 26, 52, 89, 122, 147, 171, 187, 196, 190, 183, 175, 151, 138, 119, 104, 110, 98, 107, 139, 143, 172, 209, 216, 241, 255, 243, 238, 222, 187, 152, 112, 78, 39, 1, 0, 0, 0, 0, 6, 34, 64, 96, 133, 156, 174, 190, 189, 187, 178, 157, 148, 127, 111, 114, 99, 105, 132, 138, 160, 194, 218, 233, 240, 255, 251, 220, 213, 178, 132, 100, 59, 26, 0, 0, 0, 0, 0, 17, 38, 76, 108, 134, 165, 174, 185, 198, 178, 164, 168, 143, 115, 121, 116, 101, 116, 135, 150, 174, 196, 223, 241, 243, 249, 244, 215, 191, 163, 115, 75, 50, 9, 0, 0, 0, 0, 2, 24, 65, 95, 117, 157, 181, 180, 189, 199, 178, 158, 159, 132, 114, 118, 102, 111, 127, 132, 167, 183, 203, 240, 234, 242, 252, 219, 202, 173, 129, 101, 53, 19, 6, 0, 0, 0, 0, 15, 50, 83, 112, 147, 169, 181, 196, 193, 183, 175, 156, 142, 127, 110, 108, 110, 112, 124, 149, 171, 187, 214, 234, 239, 242, 235, 217, 190, 159, 122, 81, 51, 22, 0, 0, 0, 0, 2, 28, 61, 91, 119, 151, 172, 183, 188, 186, 182, 165, 146, 139, 123, 107, 111, 112, 113, 138, 159, 171, 203, 227, 233, 244, 244, 233, 212, 176, 150, 116, 67, 37, 17, 0, 0, 0, 0, 8, 39, 68, 100, 131, 152, 174, 183, 183, 184, 171, 157, 144, 132, 121, 103, 114, 123, 112, 143, 170, 174, 203, 223, 234, 239, 230, 228, 202, 172, 149, 104, 79, 49, 12, 11, 0, 0, 13, 15, 37, 78, 95, 118, 147, 164, 170, 172, 176, 167, 154, 142, 133, 126, 111, 111, 121, 121, 138, 157, 172, 199, 211, 225, 238, 228, 226, 211, 178, 159, 126, 87, 62, 35, 15, 2, 0, 6, 19, 33, 61, 90, 112, 133, 155, 168, 172, 174, 169, 160, 152, 135, 125, 121, 110, 113, 119, 124, 145, 160, 174, 200, 209, 219, 225, 215, 211, 192, 163, 146, 115, 85, 63, 39, 29, 20, 15, 27, 39, 55, 74, 96, 119, 132, 146, 159, 162, 163, 160, 155, 146, 137, 131, 119, 119, 121, 114, 130, 140, 147, 170, 176, 189, 205, 199, 201, 198, 185, 170, 147, 134, 109, 82, 74, 53, 42, 45, 36, 48, 61, 66, 87, 102, 115, 131, 141, 150, 155, 157, 155, 149, 146, 138, 128, 125, 123, 123, 123, 131, 142, 147, 159, 170, 177, 186, 183, 185, 185, 171, 163, 151, 132, 121, 102, 89, 82, 68, 64, 64, 60, 68, 73, 77, 90, 99, 108, 119, 127, 136, 141, 142, 146, 147, 145, 142, 143, 145, 141, 143, 147, 148, 152, 153, 157, 164, 160, 164, 167, 158, 159, 153, 141, 139, 126, 116, 109, 97, 93, 85, 77, 80, 78, 77, 82, 89, 97, 101, 110, 120, 125, 129, 132, 142, 140, 138, 150, 145, 143, 153, 145, 147, 152, 145, 150, 149, 146, 151, 146, 146, 147, 143, 142, 138, 139, 138, 127, 130, 128, 115, 114, 111, 103, 99, 95, 94, 92, 91, 94, 95, 99, 105, 110, 117, 124, 130, 137, 140, 144, 148, 147, 144, 146, 144, 139, 140, 140, 138, 139, 140, 143, 146, 145, 149, 152, 148, 147, 145, 137, 132, 127, 117, 111, 108, 102, 98, 99, 99, 101, 103, 107, 112, 115, 118, 122, 125, 127, 127, 129, 129, 128, 129, 130, 130, 132, 133, 134, 136, 138, 139, 139, 141, 141, 140, 139, 140, 138, 134, 135, 134, 132, 133, 132, 131, 132, 130, 129, 128, 125, 123, 121, 117, 116, 116, 113, 112, 115, 113, 113, 118, 117, 119, 121, 120, 123, 122, 120, 124, 123, 122, 126, 126, 129, 133, 134, 138, 140, 142, 146, 145, 145, 147, 145, 142, 142, 140, 136, 134, 133, 130, 128, 128, 126, 124, 123, 121, 120, 117, 114, 114, 111, 109, 110, 109, 109, 112, 114, 116, 120, 123, 126, 129, 131, 134, 135, 135, 136, 136, 135, 136, 137, 137, 137, 138, 139, 139, 140, 139, 139, 137, 135, 133, 129, 126, 124, 121, 119, 118, 117, 118, 119, 119, 122, 123, 124, 127, 127, 127, 128, 127, 126, 125, 124, 122, 122, 121, 122, 123, 123, 125, 127, 128, 130, 131, 132, 133, 132, 132, 131, 130, 129, 128, 127, 126, 127, 126, 127, 129, 130, 131, 133, 134, 134, 136, 135, 135, 135, 134, 132, 131, 129, 127, 126, 125, 123, 122, 123, 121, 121, 123, 122, 123, 125, 124, 124, 125, 124, 124, 123, 122, 121, 121, 120, 121, 121, 122, 124, 126, 129, 131, 133, 135, 136, 137, 138, 137, 136, 134, 133, 131, 128, 127, 125, 124, 125, 124, 125, 128, 129, 130, 134, 134, 135, 136, 134, 133, 132, 128, 126, 123, 122, 120, 118, 119, 119, 120, 123, 123, 125, 129, 128, 129, 131, 128, 129, 129, 126, 127, 127, 125, 126, 127, 127, 128, 129, 130, 130, 131, 132, 130, 131, 129, 127, 127, 124, 123, 124, 120, 122, 122, 120, 124, 124, 122, 128, 127, 126, 132, 129, 130, 135, 131, 133, 135, 131, 133, 132, 129, 131, 129, 128, 130, 127, 130, 130, 128, 132, 131, 130, 133, 129, 129, 129, 124, 124, 122, 119, 120, 117, 118, 120, 117, 122, 124, 120, 127, 126, 121, 129, 124, 121, 129, 124, 125, 133, 129, 134, 140, 138, 143, 146, 143, 146, 143, 140, 139, 132, 130, 128, 119, 121, 118, 112, 117, 115, 112, 120, 120, 122, 131, 133, 136, 144, 144, 145, 147, 142, 138, 133, 124, 117, 109, 102, 99, 95, 96, 99, 101, 109, 116, 120, 128, 132, 132, 136, 135, 131, 132, 129, 126, 130, 128, 131, 137, 138, 144, 149, 149, 153, 154, 150, 151, 146, 140, 138, 132, 125, 123, 118, 113, 113, 111, 110, 112, 113, 115, 120, 123, 128, 131, 135, 139, 138, 140, 140, 135, 135, 132, 124, 125, 124, 116, 121, 121, 115, 122, 121, 116, 122, 117, 113, 117, 112, 112, 115, 112, 119, 122, 122, 132, 131, 132, 141, 133, 134, 139, 126, 131, 133, 122, 131, 134, 127, 140, 142, 140, 151, 149, 148, 153, 147, 146, 144, 137, 137, 131, 127, 128, 120, 120, 120, 113, 115, 112, 107, 110, 106, 105, 107, 105, 109, 110, 110, 118, 117, 120, 128, 123, 128, 133, 126, 132, 134, 126, 133, 133, 128, 136, 135, 134, 142, 140, 142, 148, 145, 147, 149, 145, 146, 145, 142, 141, 139, 136, 134, 133, 130, 127, 127, 122, 117, 119, 111, 108, 111, 102, 102, 107, 99, 104, 109, 105, 112, 117, 115, 122, 125, 126, 131, 132, 135, 136, 137, 141, 140, 141, 145, 140, 142, 144, 138, 139, 139, 132, 133, 131, 126, 126, 123, 121, 120, 119, 119, 118, 119, 121, 120, 124, 127, 127, 132, 134, 135, 138, 137, 138, 138, 134, 135, 132, 128, 131, 126, 124, 128, 122, 121, 126, 118, 119, 122, 114, 116, 118, 112, 114, 116, 113, 115, 118, 119, 120, 124, 127, 127, 132, 136, 135, 140, 144, 141, 146, 149, 145, 148, 149, 145, 147, 147, 143, 144, 142, 137, 137, 133, 127, 126, 118, 114, 113, 105, 105, 107, 101, 107, 111, 107, 116, 119, 113, 122, 120, 112, 119, 113, 106, 114, 109, 108, 118, 117, 122, 134, 135, 142, 149, 150, 156, 156, 154, 157, 153, 151, 151, 145, 143, 141, 134, 132, 129, 121, 120, 117, 112, 113, 114, 113, 117, 121, 122, 128, 131, 130, 134, 133, 126, 128, 124, 116, 119, 114, 110, 119, 114, 116, 130, 126, 130, 145, 139, 142, 154, 144, 145, 153, 141, 140, 145, 130, 127, 129, 114, 108, 111, 98, 95, 102, 95, 97, 109, 107, 114, 126, 123, 128, 136, 129, 130, 130, 123, 122, 120, 118, 124, 126, 133, 147, 153, 166, 181, 184, 191, 196, 186, 180, 171, 149, 135, 121, 97, 86, 80, 65, 66, 73, 70, 81, 94, 96, 107, 117, 117, 122, 124, 121, 120, 119, 118, 116, 116, 121, 120, 124, 133, 131, 140, 149, 145, 158, 167, 161, 178, 183, 176, 190, 186, 174, 180, 164, 147, 145, 122, 108, 106, 88, 85, 89, 81, 88, 96, 93, 99, 103, 101, 100, 97, 96, 91, 87, 91, 92, 94, 103, 109, 119, 131, 137, 147, 161, 163, 169, 183, 184, 183, 196, 194, 187, 194, 181, 166, 164, 139, 116, 113, 88, 71, 77, 68, 69, 84, 89, 103, 117, 121, 131, 135, 129, 125, 119, 113, 102, 95, 100, 94, 93, 107, 110, 117, 129, 134, 145, 152, 154, 165, 168, 172, 180, 178, 187, 188, 178, 185, 174, 152, 150, 127, 103, 100, 75, 65, 75, 62, 70, 94, 92, 106, 127, 126, 130, 135, 129, 125, 120, 112, 109, 108, 107, 107, 116, 122, 121, 136, 141, 137, 151, 152, 145, 161, 159, 153, 171, 168, 164, 179, 170, 162, 165, 144, 129, 123, 95, 82, 82, 65, 65, 81, 82, 91, 112, 118, 125, 134, 132, 132, 127, 118, 116, 111, 104, 108, 111, 113, 122, 128, 136, 144, 145, 153, 158, 152, 159, 164, 156, 165, 172, 165, 173, 177, 164, 166, 157, 133, 126, 111, 85, 80, 73, 60, 69, 77, 82, 101, 112, 120, 135, 135, 132, 134, 126, 117, 114, 108, 106, 106, 109, 120, 123, 128, 144, 146, 145, 156, 156, 150, 156, 155, 152, 159, 159, 162, 172, 165, 163, 168, 149, 133, 129, 103, 84, 81, 66, 62, 73, 74, 88, 107, 113, 127, 136, 133, 136, 131, 120, 118, 113, 105, 108, 114, 116, 121, 135, 142, 141, 150, 155, 148, 151, 149, 145, 151, 147, 150, 165, 161, 164, 178, 170, 163, 160, 142, 128, 112, 92, 83, 75, 68, 73, 81, 91, 100, 108, 122, 125, 120, 123, 121, 112, 107, 106, 108, 108, 110, 123, 132, 135, 142, 152, 156, 151, 151, 157, 148, 140, 149, 148, 147, 157, 162, 169, 176, 170, 169, 166, 146, 129, 117, 97, 81, 74, 70, 73, 79, 86, 101, 114, 115, 119, 127, 120, 110, 108, 106, 99, 96, 103, 112, 115, 124, 140, 146, 149, 155, 157, 155, 150, 148, 150, 145, 146, 156, 159, 165, 176, 176, 175, 174, 160, 146, 131, 111, 97, 85, 76, 79, 80, 84, 98, 106, 110, 119, 122, 118, 115, 113, 109, 104, 105, 107, 109, 114, 122, 126, 132, 138, 141, 142, 142, 143, 143, 141, 143, 149, 150, 154, 166, 171, 171, 176, 177, 167, 156, 146, 130, 113, 100, 92, 86, 81, 86, 93, 97, 104, 113, 115, 115, 115, 113, 109, 105, 104, 105, 104, 107, 116, 121, 125, 133, 140, 141, 142, 143, 143, 141, 138, 141, 148, 149, 154, 169, 178, 177, 180, 184, 175, 155, 142, 131, 109, 86, 83, 85, 75, 75, 95, 106, 101, 109, 126, 122, 108, 112, 120, 107, 98, 111, 119, 111, 114, 131, 134, 126, 130, 139, 134, 126, 132, 140, 139, 143, 157, 169, 176, 184, 191, 194, 188, 176, 162, 147, 128, 107, 92, 86, 81, 75, 80, 93, 97, 96, 106, 115, 109, 101, 106, 109, 100, 97, 110, 117, 112, 116, 131, 133, 123, 127, 138, 134, 124, 134, 149, 148, 147, 169, 187, 183, 185, 203, 204, 182, 170, 170, 147, 111, 101, 99, 78, 63, 76, 88, 82, 87, 110, 115, 103, 107, 115, 104, 91, 97, 104, 98, 102, 120, 125, 125, 136, 143, 137, 133, 139, 136, 127, 134, 148, 150, 158, 181, 196, 197, 200, 209, 199, 172, 157, 143, 112, 85, 77, 74, 64, 65, 85, 100, 103, 113, 124, 122, 110, 101, 98, 86, 77, 83, 93, 102, 114, 132, 147, 150, 150, 152, 143, 132, 129, 130, 132, 138, 156, 175, 187, 201, 214, 214, 204, 189, 168, 138, 106, 85, 66, 53, 55, 65, 78, 94, 112, 125, 129, 131, 129, 116, 102, 95, 87, 82, 87, 101, 114, 124, 138, 150, 148, 146, 143, 135, 127, 121, 123, 130, 142, 161, 179, 198, 215, 217, 208, 197, 176, 146, 115, 96, 80, 59, 55, 68, 77, 84, 103, 125, 130, 124, 127, 126, 109, 96, 96, 97, 92, 93, 110, 122, 125, 135, 146, 148, 139, 131, 131, 127, 123, 132, 150, 168, 180, 193, 209, 209, 196, 187, 172, 145, 113, 91, 79, 60, 51, 66, 82, 92, 107, 128, 140, 133, 130, 134, 124, 106, 100, 102, 99, 92, 101, 119, 123, 122, 131, 138, 131, 117, 121, 127, 121, 125, 148, 168, 178, 193, 216, 224, 210, 201, 187, 155, 119, 94, 75, 55, 46, 58, 69, 81, 104, 123, 131, 137, 140, 134, 118, 109, 107, 94, 89, 101, 110, 113, 121, 138, 143, 133, 135, 138, 126, 118, 122, 131, 137, 148, 176, 197, 206, 217, 219, 206, 181, 151, 123, 90, 62, 51, 47, 51, 65, 86, 110, 127, 139, 151, 147, 136, 124, 111, 102, 92, 93, 103, 107, 114, 125, 131, 134, 133, 134, 135, 126, 123, 124, 126, 135, 148, 167, 188, 201, 209, 209, 198, 184, 159, 134, 113, 88, 69, 57, 54, 60, 68, 86, 108, 119, 129, 136, 136, 134, 127, 124, 122, 116, 115, 115, 114, 120, 123, 125, 130, 130, 130, 126, 126, 133, 133, 138, 149, 153, 158, 161, 167, 173, 172, 174, 170, 156, 143, 126, 106, 94, 85, 82, 80, 83, 95, 101, 106, 119, 128, 130, 128, 128, 129, 120, 115, 120, 121, 119, 119, 120, 124, 121, 122, 130, 134, 137, 136, 137, 141, 137, 137, 147, 154, 159, 160, 162, 165, 156, 147, 144, 137, 128, 117, 110, 107, 97, 93, 97, 100, 105, 108, 114, 122, 120, 121, 123, 121, 121, 118, 117, 120, 118, 121, 124, 124, 131, 131, 129, 132, 134, 137, 135, 136, 145, 144, 139, 145, 151, 153, 149, 154, 163, 153, 143, 144, 138, 124, 113, 112, 112, 99, 95, 101, 100, 100, 103, 111, 118, 117, 120, 125, 121, 122, 121, 119, 122, 120, 121, 122, 123, 130, 132, 133, 141, 143, 142, 140, 140, 146, 145, 145, 154, 156, 154, 151, 149, 151, 142, 134, 134, 127, 115, 104, 98, 100, 95, 96, 107, 113, 114, 111, 112, 119, 114, 113, 122, 127, 127, 122, 123, 126, 119, 116, 124, 129, 130, 130, 135, 141, 136, 136, 147, 154, 159, 164, 174, 181, 173, 165, 158, 141, 124, 107, 98, 94, 85, 88, 95, 99, 104, 106, 114, 118, 115, 117, 121, 121, 122, 124, 125, 126, 118, 116, 116, 109, 110, 114, 120, 130, 129, 138, 149, 153, 168, 176, 189, 201, 196, 193, 180, 159, 140, 114, 100, 87, 74, 74, 77, 82, 87, 96, 109, 117, 117, 119, 124, 119, 115, 116, 118, 121, 117, 122, 127, 118, 117, 118, 122, 117, 105, 115, 128, 137, 154, 179, 215, 233, 236, 239, 222, 186, 141, 105, 82, 54, 45, 60, 77, 91, 99, 115, 122, 111, 103, 103, 102, 98, 98, 106, 114, 118, 123, 129, 123, 119, 121, 118, 121, 115, 112, 116, 117, 135, 156, 179, 214, 242, 255, 255, 230, 198, 150, 97, 65, 50, 57, 70, 83, 111, 118, 107, 96, 88, 86, 77, 86, 112, 124, 122, 121, 131, 126, 112, 109, 112, 113, 103, 107, 123, 129, 132, 131, 137, 145, 150, 168, 199, 238, 255, 253, 230, 192, 140, 83, 54, 60, 79, 94, 106, 119, 116, 92, 74, 69, 76, 90, 103, 121, 125, 124, 130, 124, 121, 112, 110, 120, 103, 97, 99, 110, 126, 122, 138, 146, 144, 161, 189, 228, 239, 239, 240, 211, 161, 109, 89, 79, 72, 90, 114, 129, 111, 91, 84, 66, 66, 74, 96, 126, 128, 133, 131, 119, 118, 102, 105, 116, 110, 116, 113, 119, 125, 114, 128, 131, 128, 140, 161, 207, 227, 229, 228, 204, 178, 142, 119, 108, 97, 98, 100, 108, 108, 97, 86, 79, 86, 92, 102, 110, 118, 126, 123, 117, 106, 105, 115, 121, 119, 111, 110, 110, 113, 111, 111, 115, 121, 143, 161, 193, 236, 253, 249, 216, 180, 141, 93, 84, 100, 111, 117, 118, 123, 111, 76, 67, 74, 82, 102, 114, 132, 132, 115, 116, 112, 117, 118, 106, 107, 103, 100, 101, 108, 132, 143, 132, 122, 128, 148, 185, 222, 249, 251, 220, 190, 140, 89, 70, 81, 119, 130, 130, 134, 118, 97, 70, 74, 86, 87, 99, 115, 135, 116, 97, 102, 102, 115, 110, 122, 126, 101, 118, 130, 130, 126, 111, 135, 135, 139, 197, 230, 250, 241, 210, 187, 118, 85, 97, 98, 119, 126, 140, 132, 87, 78, 72, 74, 78, 90, 114, 112, 113, 114, 124, 121, 99, 104, 104, 123, 123, 111, 133, 131, 136, 125, 112, 132, 130, 166, 216, 239, 245, 206, 184, 164, 114, 90, 94, 124, 141, 112, 101, 110, 97, 80, 69, 90, 112, 99, 102, 115, 118, 114, 111, 116, 115, 108, 108, 113, 104, 115, 133, 127, 129, 124, 136, 141, 141, 188, 209, 215, 218, 210, 201, 146, 119, 123, 116, 118, 110, 116, 106, 77, 80, 85, 87, 90, 91, 105, 104, 94, 112, 123, 124, 118, 102, 113, 109, 100, 115, 123, 139, 145, 147, 148, 139, 150, 180, 209, 201, 196, 191, 172, 168, 144, 143, 131, 100, 110, 91, 81, 87, 83, 101, 89, 87, 105, 101, 103, 104, 112, 117, 110, 105, 103, 111, 117, 135, 154, 141, 126, 113, 121, 146, 129, 147, 193, 210, 222, 186, 179, 178, 129, 131, 127, 127, 126, 104, 119, 102, 89, 95, 98, 98, 72, 84, 88, 99, 115, 105, 133, 117, 111, 123, 96, 121, 123, 124, 147, 115, 123, 133, 130, 156, 159, 195, 235, 215, 199, 180, 160, 142, 109, 114, 134, 129, 120, 104, 92, 78, 66, 68, 81, 97, 106, 109, 107, 113, 109, 106, 105, 105, 121, 112, 125, 131, 129, 157, 126, 119, 125, 144, 215, 189, 193, 220, 206, 217, 148, 120, 124, 87, 115, 113, 118, 137, 110, 109, 84, 57, 69, 69, 89, 107, 105, 111, 108, 107, 104, 101, 118, 126, 124, 117, 126, 145, 147, 156, 154, 165, 187, 196, 217, 209, 202, 180, 127, 108, 98, 112, 121, 111, 122, 116, 108, 103, 85, 82, 88, 92, 99, 91, 81, 99, 100, 113, 127, 108, 119, 103, 95, 118, 114, 152, 164, 165, 207, 202, 198, 192, 187, 213, 185, 134, 115, 101, 112, 118, 104, 120, 121, 108, 87, 55, 77, 103, 109, 114, 105, 113, 99, 92, 112, 118, 126, 106, 97, 111, 114, 128, 137, 153, 188, 185, 177, 202, 207, 199, 161, 132, 158, 127, 100, 121, 124, 136, 98, 80, 113, 91, 81, 91, 98, 118, 107, 104, 128, 122, 108, 111, 100, 101, 94, 89, 129, 143, 135, 135, 144, 187, 221, 217, 199, 184, 168, 159, 129, 92, 117, 129, 127, 123, 95, 107, 93, 75, 105, 97, 99, 114, 107, 113, 102, 108, 138, 115, 92, 103, 96, 96, 101, 126, 165, 152, 157, 191, 204, 203, 201, 212, 194, 147, 110, 112, 119, 103, 117, 131, 115, 90, 69, 91, 108, 90, 95, 104, 98, 105, 101, 110, 122, 98, 107, 108, 101, 131, 127, 137, 145, 147, 186, 195, 208, 214, 195, 176, 141, 126, 125, 138, 140, 117, 111, 100, 99, 87, 81, 110, 108, 97, 99, 100, 105, 89, 87, 113, 120, 126, 132, 118, 107, 104, 114, 127, 134, 170, 217, 228, 201, 173, 165, 162, 151, 134, 138, 133, 110, 99, 91, 111, 117, 110, 113, 88, 74, 67, 88, 126, 123, 124, 121, 119, 109, 82, 92, 120, 138, 129, 113, 134, 177, 206, 214, 226, 213, 171, 127, 109, 136, 132, 123, 135, 124, 110, 83, 82, 105, 91, 94, 103, 102, 106, 100, 106, 103, 87, 102, 120, 125, 114, 108, 131, 141, 141, 147, 183, 234, 223, 197, 175, 161, 157, 118, 124, 137, 120, 123, 106, 105, 96, 80, 105, 101, 82, 80, 85, 95, 89, 90, 112, 130, 121, 115, 119, 125, 130, 116, 128, 165, 192, 205, 208, 217, 207, 170, 140, 133, 128, 114, 125, 131, 112, 91, 79, 98, 100, 83, 90, 87, 90, 98, 87, 100, 117, 129, 135, 104, 107, 133, 128, 123, 121, 150, 188, 207, 225, 212, 182, 160, 155, 139, 116, 130, 139, 132, 101, 81, 102, 89, 82, 83, 71, 81, 87, 111, 125, 107, 116, 129, 118, 99, 101, 134, 150, 130, 121, 158, 198, 214, 211, 199, 185, 150, 117, 125, 141, 147, 141, 125, 116, 93, 72, 84, 90, 91, 78, 72, 91, 100, 109, 117, 124, 130, 116, 111, 116, 123, 126, 125, 151, 180, 197, 203, 202, 199, 171, 132, 111, 119, 140, 156, 152, 131, 116, 98, 88, 77, 66, 83, 91, 99, 103, 96, 111, 116, 115, 111, 93, 110, 131, 137, 139, 134, 163, 191, 194, 201, 194, 185, 156, 115, 117, 129, 142, 139, 123, 124, 102, 82, 84, 96, 115, 99, 94, 99, 94, 97, 99, 121, 128, 111, 112, 114, 122, 126, 139, 179, 201, 204, 193, 180, 175, 147, 117, 113, 130, 145, 129, 114, 123, 120, 98, 81, 83, 87, 77, 83, 111, 119, 113, 116, 125, 120, 101, 105, 126, 133, 139, 151, 171, 195, 207, 210, 183, 152, 145, 133, 122, 116, 125, 138, 122, 112, 99, 88, 94, 90, 88, 74, 77, 106, 106, 108, 114, 123, 129, 118, 132, 137, 126, 136, 148, 167, 174, 188, 217, 207, 180, 149, 123, 110, 98, 114, 130, 128, 127, 112, 95, 72, 61, 80, 96, 106, 103, 99, 110, 115, 118, 119, 125, 133, 124, 118, 134, 167, 195, 207, 209, 197, 173, 150, 138, 134, 129, 125, 121, 118, 106, 94, 93, 92, 87, 78, 81, 97, 96, 93, 97, 114, 127, 116, 119, 128, 128, 125, 127, 164, 197, 212, 215, 198, 185, 159, 136, 130, 124, 133, 125, 112, 114, 108, 104, 86, 77, 84, 71, 69, 77, 97, 115, 106, 112, 120, 123, 126, 119, 137, 157, 175, 196, 200, 206, 195, 174, 161, 143, 137, 130, 126, 127, 111, 103, 100, 101, 100, 84, 79, 79, 83, 87, 83, 90, 102, 113, 119, 122, 134, 141, 143, 154, 173, 187, 193, 204, 205, 181, 148, 139, 142, 128, 109, 106, 113, 112, 102, 102, 96, 89, 89, 82, 77, 79, 102, 122, 112, 110, 117, 126, 127, 121, 136, 152, 176, 202, 204, 201, 191, 176, 146, 105, 108, 124, 127, 123, 117, 122, 104, 86, 86, 83, 90, 97, 107, 111, 101, 110, 111, 105, 109, 118, 138, 143, 148, 163, 169, 181, 191, 193, 183, 159, 142, 122, 107, 110, 118, 127, 126, 117, 105, 90, 89, 95, 94, 94, 102, 111, 108, 101, 105, 115, 118, 121, 131, 147, 165, 176, 185, 187, 182, 177, 161, 145, 129, 119, 120, 117, 119, 121, 119, 119, 105, 95, 89, 86, 93, 93, 99, 105, 104, 110, 106, 111, 123, 136, 155, 159, 174, 189, 187, 182, 168, 164, 152, 131, 126, 122, 125, 122, 113, 115, 107, 104, 98, 91, 98, 100, 98, 90, 88, 101, 101, 103, 116, 136, 154, 155, 163, 179, 184, 181, 170, 167, 160, 146, 135, 127, 126, 122, 116, 113, 109, 106, 102, 101, 101, 97, 93, 92, 96, 98, 98, 103, 112, 130, 141, 152, 166, 181, 188, 173, 161, 163, 162, 151, 134, 134, 133, 116, 108, 107, 111, 103, 94, 102, 100, 99, 106, 111, 111, 97, 96, 104, 106, 123, 142, 162, 174, 177, 182, 169, 158, 155, 146, 139, 132, 139, 141, 124, 114, 105, 100, 95, 91, 98, 99, 105, 113, 108, 107, 109, 116, 116, 111, 129, 151, 165, 171, 171, 172, 161, 150, 146, 138, 136, 134, 132, 126, 115, 113, 112, 108, 102, 99, 105, 110, 112, 112, 110, 112, 112, 111, 115, 122, 134, 147, 160, 168, 168, 166, 161, 148, 131, 123, 129, 134, 127, 123, 127, 123, 109, 100, 106, 113, 108, 107, 115, 123, 119, 114, 121, 129, 129, 127, 132, 143, 147, 144, 147, 153, 154, 144, 133, 130, 124, 119, 118, 120, 123, 119, 114, 113, 113, 115, 117, 123, 128, 127, 127, 128, 131, 131, 130, 134, 138, 138, 137, 139, 140, 134, 126, 126, 127, 123, 121, 123, 124, 119, 114, 117, 119, 118, 121, 127, 132, 129, 127, 130, 129, 128, 129, 137, 145, 146, 147, 144, 138, 130, 123, 122, 119, 118, 120, 117, 116, 115, 117, 119, 116, 116, 116, 113, 113, 118, 134, 144, 149, 159, 163, 159, 143, 132, 132, 126, 120, 116, 121, 127, 122, 117, 116, 120, 120, 113, 114, 120, 125, 123, 120, 128, 134, 132, 129, 132, 142, 138, 130, 130, 134, 133, 123, 125, 134, 135, 131, 129, 133, 132, 122, 119, 118, 120, 119, 119, 124, 127, 128, 128, 126, 127, 125, 126, 128, 129, 134, 134, 134, 132, 131, 130, 126, 126, 130, 132, 132, 129, 131, 129, 121, 118, 118, 121, 121, 121, 127, 129, 129, 127, 128, 131, 130, 129, 129, 130, 130, 128, 129, 131, 131, 131, 128, 127, 127, 127, 127, 127, 129, 130, 127, 125, 122, 122, 121, 121, 126, 129, 130, 130, 129, 129, 126, 126, 127, 128, 130, 130, 133, 133, 130, 129, 127, 126, 123, 123, 127, 127, 128, 129, 130, 129, 125, 124, 124, 124, 126, 127, 130, 131, 131, 131, 129, 128, 128, 127, 127, 126, 127, 127, 125, 126, 127, 128, 126, 125, 127, 126, 124, 124, 127, 131, 128, 129, 130, 130, 128, 126, 129, 130, 129, 130, 131, 133, 132, 131, 131, 128, 126, 123, 121, 121, 120, 124, 126, 126, 127, 127, 127, 124, 123, 126, 128, 129, 129, 130, 133, 130, 129, 128, 130, 132, 131, 132, 132, 132, 131, 126, 126, 125, 124, 123, 122, 126, 128, 127, 126, 125, 125, 123, 120, 121, 123, 127, 129, 131, 134, 134, 134, 131, 128, 128, 127, 129, 128, 129, 131, 130, 127, 124, 123, 125, 124, 127, 130, 134, 134, 131, 129, 126, 123, 122, 122, 124, 125, 126, 128, 126, 126, 126, 127, 129, 128, 131, 132, 131, 129, 128, 129, 127, 125, 126, 127, 129, 129, 129, 131, 130, 129, 125, 123, 123, 122, 124, 126, 129, 132, 132, 131, 127, 126, 126, 124, 125, 126, 129, 131, 129, 128, 127, 127, 127, 125, 127, 130, 132, 131, 128, 129, 128, 126, 124, 123, 125, 126, 126, 127, 129, 132, 130, 128, 128, 128, 128, 126, 124, 125, 126, 126, 125, 127, 130, 131, 131, 129, 130, 130, 127, 125, 125, 127, 128, 126, 127, 128, 128, 126, 124, 126, 127, 129, 130, 130, 131, 130, 127, 125, 123, 124, 125, 126, 128, 130, 133, 131, 129, 128, 127, 127, 125, 125, 127, 128, 129, 128, 129, 130, 128, 127, 126, 127, 127, 126, 128, 128, 128, 127, 126, 126, 125, 125, 128, 129, 130, 129, 129, 128, 124, 123, 123, 126, 128, 129, 132, 133, 132, 130, 128, 128, 127, 127, 128, 129, 131, 129, 128, 126, 124, 124, 124, 124, 126, 128, 130, 129, 128, 127, 126, 125, 123, 125, 127, 128, 129, 130, 132, 132, 130, 129, 129, 129, 128, 127, 128, 129, 129, 128, 126, 126, 125, 124, 124, 125, 127, 127, 127, 127, 126, 126, 126, 126, 127, 129, 130, 130, 130, 130, 129, 129, 128, 127, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 128, 128, 127, 128, 129, 128, 129, 129, 130, 129, 128, 128, 127, 127, 126, 127, 128, 128, 129, 129, 128, 127, 126, 126, 125, 126, 127, 127, 128, 128, 128, 128, 127, 126, 126, 127, 127, 128, 129, 129, 129, 128, 127, 127, 127, 127, 127, 128, 129, 129, 129, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 126, 127, 127, 127, 128, 127, 128, 129, 128, 127, 127, 128, 128, 128, 128, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 129, 128, 128, 128, 128, 128, 129, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 126, 127, 127, 128, 127, 127, 127, 128, 127, 126, 127, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 129, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 128, 128, 127, 125, 125, 124, 124, 125, 125, 125, 127, 128, 128, 129, 130, 131, 131, 131, 130, 130, 130, 129, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 126, 126, 125, 125, 125, 125, 125, 125, 126, 126, 127, 127, 128, 129, 129, 129, 129, 130, 130, 129, 129, 129, 129, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 128, 128, 127, 127, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 129, 128, 127, 128, 129, 128, 127, 128, 128, 128, 128, 127, 128, 128, 127, 126, 127, 127, 126, 126, 127, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 129, 129, 128, 129, 128, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 128, 129, 128, 128, 129, 129, 128, 128, 128, 127, 127, 126, 126, 127, 127, 126, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 129, 128, 128, 128, 128, 127, 127, 125, 124, 124, 123, 123, 124, 124, 125, 126, 127, 128, 129, 131, 131, 132, 132, 133, 132, 132, 132, 131, 131, 130, 130, 129, 128, 127, 126, 126, 125, 125, 124, 124, 124, 123, 123, 123, 123, 123, 124, 125, 126, 126, 127, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 125, 126, 126, 126, 127, 127, 128, 128, 128, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 128, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 128, 128, 129, 128, 128, 128, 127, 127, 127, 126, 127, 127, 127, 128, 128, 129, 129, 129, 129, 129, 129, 128, 128, 127, 127, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 129, 129, 129, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 126, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 129, 129, 129, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 126, 126, 126, 126, 126, 125, 126, 126, 125, 125, 126, 126, 126, 126, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130, 130, 129, 129, 129, 130, 129, 129, 129, 129, 129, 128, 128, 127, 127, 126, 126, 126, 126, 126, 125, 126, 126, 126, 127, 127, 128, 128, 128, 128, 129, 129, 128, 128, 129, 129, 129, 129, 129, 128, 128, 127, 127, 127, 126, 126, 126, 126, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 129, 129, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 129, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 125, 125, 124, 124, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 129, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 127, 126, 126, 125, 124, 124, 124, 125, 125, 124, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 128, 128, 127, 127, 127, 126, 126, 126, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, 129, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 127, 126, 126, 126, 126, 126, 126, 125, 125, 126, 126, 126, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 126, 125, 125, 124, 124, 124, 124, 124, 124, 125, 125, 126, 127, 127, 128, 128, 129, 129, 129, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 127, 127, 127, 126, 126, 126, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 129, 130, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 126, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 127, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 128, 128, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 127, 127, 127, 127, 128, 127, 127, 128, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 127, 127, 128, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 127, 128, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 127, 127, 127, 127, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 128, 127, 127, 128, 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 128, 128, 128, 127, 127, 127, 127, 128, 128, 128, 128, 127, 127, 127, 127, 127, 128, 128, 127, 127, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, 127, 127, 128, 127, 127, 128, 127, 127, 128, 126, 126, 128, 127, 126, 128, 128, 128, 127, 128, 128, 128, 127, 127, 128, 127, 126, 127, 128, 127, 127, 128, 128, 128, 127, 128, 129, 129, 128, 128, 130, 128, 127, 127, 127, 126, 125, 126, 127, 127, 127, 129, 130, 129, 128, 129, 129, 127, 126, 127, 127, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, 129, 128, 128, 128, 129, 128, 129, 130, 128, 127, 127, 126, 125, 125, 126, 127, 127, 128, 128, 128, 127, 126, 126, 126, 125, 126, 127, 129, 129, 129, 130, 129, 128, 127, 127, 128, 128, 129, 129, 129, 128, 128, 127, 127, 127, 127, 127, 127, 128, 127, 126, 127, 127, 127, 126, 127, 128, 127, 126, 126, 127, 127, 126, 128, 130, 129, 128, 129, 129, 127, 126, 127, 129, 128, 128, 129, 129, 126, 125, 126, 128, 128, 129, 131, 131, 128, 125, 124, 123, 122, 123, 127, 129, 129, 129, 130, 129, 128, 128, 129, 129, 128, 129, 130, 129, 128, 129, 129, 127, 126, 126, 126, 126, 127, 129, 129, 128, 128, 128, 125, 124, 124, 125, 125, 125, 126, 127, 128, 128, 131, 133, 131, 130, 129, 126, 123, 123, 125, 127, 129, 132, 133, 133, 130, 128, 127, 127, 126, 127, 129, 129, 128, 128, 127, 124, 124, 125, 125, 126, 126, 128, 127, 126, 126, 128, 127, 128, 130, 131, 130, 129, 129, 128, 127, 126, 126, 127, 126, 126, 128, 129, 127, 127, 128, 127, 125, 125, 127, 127, 127, 130, 131, 130, 130, 130, 129, 128, 128, 129, 130, 129, 128, 128, 126, 124, 123, 124, 125, 126, 127, 129, 128, 125, 124, 124, 123, 125, 130, 133, 134, 134, 133, 129, 124, 122, 122, 124, 126, 129, 132, 133, 132, 132, 132, 130, 127, 127, 126, 124, 122, 123, 125, 126, 127, 130, 130, 128, 127, 127, 125, 124, 125, 127, 127, 127, 128, 129, 128, 128, 129, 129, 127, 126, 129, 131, 131, 133, 136, 134, 129, 125, 123, 121, 119, 123, 129, 130, 129, 130, 130, 126, 123, 124, 128, 128, 126, 128, 129, 126, 123, 125, 128, 128, 128, 131, 134, 131, 129, 129, 130, 127, 126, 127, 129, 128, 127, 128, 128, 126, 125, 126, 127, 127, 126, 127, 126, 125, 124, 125, 126, 128, 129, 130, 129, 129, 127, 125, 125, 128, 130, 131, 133, 135, 133, 130, 128, 127, 125, 122, 124, 127, 128, 128, 130, 131, 129, 125, 124, 124, 123, 122, 125, 128, 128, 127, 128, 128, 127, 127, 129, 130, 129, 128, 128, 126, 125, 127, 129, 130, 130, 132, 132, 129, 128, 130, 130, 128, 129, 131, 130, 126, 125, 126, 122, 118, 119, 122, 122, 122, 128, 135, 135, 132, 133, 133, 127, 121, 123, 127, 125, 123, 128, 132, 130, 127, 131, 134, 129, 125, 128, 130, 127, 125, 130, 133, 129, 124, 124, 124, 120, 118, 123, 128, 127, 127, 131, 133, 132, 131, 132, 133, 130, 126, 125, 126, 126, 126, 128, 130, 128, 124, 122, 123, 125, 127, 129, 132, 132, 128, 124, 124, 127, 129, 131, 133, 133, 128, 122, 121, 123, 124, 127, 131, 133, 130, 125, 123, 123, 124, 127, 132, 136, 134, 131, 128, 125, 122, 121, 123, 124, 125, 127, 128, 127, 128, 130, 130, 128, 130, 133, 131, 129, 130, 129, 124, 119, 121, 125, 126, 127, 133, 136, 129, 123, 125, 129, 129, 131, 141, 146, 137, 126, 124, 119, 110, 108, 118, 124, 120, 119, 126, 130, 128, 133, 146, 153, 146, 137, 133, 124, 109, 104, 114, 123, 126, 130, 137, 137, 127, 118, 118, 119, 120, 123, 130, 135, 136, 134, 132, 133, 132, 130, 130, 130, 129, 126, 123, 124, 126, 128, 129, 135, 140, 136, 127, 122, 119, 115, 113, 119, 130, 134, 131, 131, 129, 122, 119, 120, 123, 129, 133, 133, 132, 130, 126, 125, 127, 129, 133, 135, 135, 134, 133, 130, 127, 127, 129, 128, 127, 128, 126, 121, 117, 116, 117, 116, 117, 123, 125, 120, 124, 130, 129, 129, 132, 137, 139, 135, 133, 137, 136, 130, 132, 140, 143, 139, 138, 140, 133, 121, 116, 118, 117, 113, 112, 120, 123, 116, 115, 120, 117, 110, 109, 111, 116, 116, 119, 135, 144, 140, 144, 151, 147, 147, 156, 163, 166, 163, 157, 150, 136, 122, 116, 113, 106, 99, 100, 104, 99, 95, 98, 102, 103, 102, 103, 110, 114, 109, 106, 106, 103, 107, 120, 144, 183, 219, 237, 245, 229, 185, 141, 115, 101, 102, 118, 137, 144, 128, 99, 77, 66, 63, 74, 98, 120, 126, 121, 113, 101, 95, 101, 110, 114, 112, 110, 112, 113, 123, 156, 195, 216, 228, 229, 207, 171, 138, 117, 117, 124, 134, 147, 149, 124, 92, 69, 58, 55, 66, 91, 115, 121, 116, 113, 111, 105, 106, 119, 128, 122, 109, 100, 98, 100, 117, 160, 208, 233, 237, 234, 211, 167, 132, 121, 121, 122, 127, 137, 133, 110, 86, 76, 72, 69, 75, 92, 105, 106, 105, 109, 117, 120, 121, 130, 135, 125, 113, 104, 96, 97, 109, 132, 172, 211, 227, 231, 227, 201, 166, 142, 132, 130, 126, 123, 121, 107, 84, 72, 68, 63, 66, 82, 101, 106, 104, 112, 122, 123, 119, 121, 130, 127, 110, 105, 109, 104, 109, 133, 153, 178, 206, 220, 225, 219, 196, 176, 161, 142, 128, 119, 111, 110, 102, 86, 78, 78, 74, 69, 72, 88, 104, 109, 112, 120, 128, 125, 115, 118, 124, 112, 104, 111, 110, 111, 123, 139, 170, 202, 215, 227, 234, 210, 178, 158, 141, 129, 123, 121, 120, 106, 83, 71, 66, 57, 60, 81, 101, 110, 117, 124, 122, 113, 108, 108, 110, 111, 110, 118, 123, 113, 112, 126, 130, 141, 173, 202, 221, 233, 228, 210, 187, 162, 144, 131, 117, 114, 111, 97, 84, 81, 75, 68, 71, 84, 98, 107, 113, 117, 117, 108, 99, 100, 104, 102, 107, 115, 119, 124, 126, 121, 127, 153, 176, 191, 216, 245, 247, 217, 184, 161, 134, 101, 90, 104, 111, 102, 96, 94, 81, 65, 68, 89, 105, 106, 113, 124, 117, 101, 100, 105, 104, 106, 110, 113, 116, 120, 123, 121, 126, 152, 183, 202, 223, 246, 247, 222, 188, 159, 136, 112, 96, 101, 108, 101, 91, 87, 82, 71, 70, 85, 97, 101, 108, 111, 106, 103, 99, 99, 107, 109, 112, 120, 118, 112, 114, 117, 132, 155, 175, 201, 225, 229, 228, 223, 204, 183, 161, 135, 115, 102, 93, 89, 88, 86, 81, 78, 82, 80, 76, 86, 97, 103, 111, 112, 114, 118, 106, 97, 104, 108, 109, 116, 120, 127, 136, 141, 160, 187, 202, 220, 239, 237, 223, 202, 168, 136, 115, 101, 91, 92, 101, 106, 99, 89, 85, 84, 79, 71, 77, 98, 104, 101, 111, 118, 112, 107, 105, 106, 106, 102, 113, 132, 135, 138, 154, 162, 167, 182, 202, 225, 242, 232, 202, 166, 127, 90, 67, 69, 90, 115, 130, 130, 122, 108, 83, 62, 65, 81, 96, 114, 128, 129, 119, 106, 101, 102, 105, 117, 136, 142, 139, 138, 133, 127, 133, 148, 168, 191, 209, 214, 209, 196, 172, 144, 119, 99, 88, 84, 85, 93, 104, 107, 104, 105, 106, 105, 104, 104, 105, 102, 103, 110, 111, 110, 115, 119, 118, 118, 125, 136, 140, 138, 140, 141, 143, 152, 164, 179, 195, 202, 201, 187, 160, 135, 116, 99, 91, 96, 104, 108, 109, 110, 107, 96, 90, 96, 97, 98, 112, 121, 121, 119, 114, 114, 120, 124, 132, 140, 142, 142, 139, 134, 134, 136, 140, 151, 157, 159, 162, 159, 150, 139, 129, 124, 125, 125, 126, 122, 120, 122, 113, 103, 107, 109, 109, 115, 117, 119, 124, 121, 119, 122, 122, 126, 132, 129, 125, 126, 126, 128, 130, 133, 140, 142, 140, 138, 135, 132, 131, 129, 129, 130, 129, 130, 128, 125, 130, 133, 130, 130, 128, 124, 124, 119, 120, 130, 131, 126, 130, 133, 129, 125, 121, 119, 118, 117, 119, 122, 124, 125, 125, 124, 126, 129, 132, 136, 134, 132, 131, 130, 129, 128, 126, 129, 131, 130, 131, 130, 130, 133, 131, 127, 129, 129, 127, 128, 130, 128, 127, 129, 125, 119, 118, 122, 123, 122, 122, 124, 128, 128, 128, 130, 132, 129, 125, 127, 129, 128, 128, 130, 132, 130, 131, 134, 136, 133, 129, 127, 127, 128, 130, 130, 131, 134, 131, 125, 124, 122, 118, 118, 119, 117, 120, 124, 125, 125, 125, 125, 127, 125, 122, 122, 125, 127, 126, 125, 127, 127, 127, 132, 136, 137, 140, 140, 138, 134, 131, 133, 131, 124, 125, 130, 128, 127, 128, 126, 126, 124, 119, 123, 127, 123, 123, 126, 128, 128, 129, 133, 134, 131, 129, 128, 123, 121, 122, 123, 124, 126, 127, 128, 128, 128, 130, 130, 134, 137, 130, 126, 126, 121, 120, 123, 123, 127, 132, 130, 125, 123, 122, 120, 118, 122, 130, 134, 135, 137, 133, 128, 128, 127, 124, 125, 129, 130, 128, 126, 126, 124, 125, 130, 132, 136, 141, 138, 131, 128, 124, 120, 121, 124, 127, 128, 126, 125, 125, 122, 119, 120, 125, 130, 131, 133, 136, 134, 129, 126, 125, 125, 127, 129, 131, 132, 131, 131, 129, 127, 126, 128, 130, 128, 125, 126, 128, 124, 123, 128, 129, 125, 126, 129, 127, 126, 128, 127, 122, 122, 125, 124, 126, 130, 130, 128, 130, 129, 125, 127, 129, 126, 125, 130, 130, 127, 129, 131, 127, 124, 127, 128, 126, 126, 128, 128, 128, 128, 127, 127, 130, 128, 125, 129, 132, 127, 126, 131, 130, 126, 127, 129, 129, 128, 130, 130, 129, 130, 128, 127, 127, 127, 127, 127, 126, 124, 125, 126, 125, 125, 126, 128, 128, 128, 130, 130, 130, 130, 130, 129, 130, 129, 127, 126, 126, 124, 122, 124, 125, 125, 127, 127, 126, 126, 126, 124, 124, 128, 129, 129, 130, 132, 130, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 130, 131, 130, 130, 131, 130, 129, 128, 128, 128, 127, 127, 127, 125, 123, 124, 125, 124, 124, 127, 126, 124, 125, 127, 126, 127, 130, 131, 131, 133, 131, 129, 129, 130, 127, 127, 131, 130, 128, 130, 132, 129, 129, 132, 130, 127, 129, 129, 122, 121, 125, 122, 118, 122, 126, 123, 124, 128, 128, 128, 129, 129, 128, 130, 130, 127, 128, 131, 129, 126, 129, 130, 126, 125, 128, 127, 125, 127, 130, 129, 129, 130, 131, 130, 129, 129, 129, 128, 126, 126, 126, 126, 125, 124, 124, 126, 124, 123, 125, 129, 128, 126, 129, 133, 129, 126, 129, 132, 129, 129, 132, 132, 130, 130, 129, 126, 127, 127, 123, 123, 127, 125, 122, 126, 129, 126, 127, 132, 131, 128, 131, 132, 128, 128, 130, 127, 124, 126, 126, 123, 126, 128, 126, 127, 130, 128, 126, 128, 128, 124, 128, 131, 127, 127, 133, 130, 122, 126, 131, 124, 121, 130, 133, 125, 126, 132, 130, 124, 125, 128, 126, 124, 125, 126, 127, 128, 127, 127, 129, 129, 127, 127, 127, 127, 126, 125, 123, 125, 127, 125, 125, 132, 135, 131, 131, 137, 136, 128, 129, 134, 131, 127, 131, 133, 128, 125, 127, 126, 122, 123, 126, 125, 124, 126, 125, 123, 123, 124, 122, 123, 126, 127, 125, 127, 128, 126, 125, 126, 129, 130, 130, 131, 134, 136, 132, 130, 133, 133, 128, 127, 131, 130, 126, 127, 128, 125, 124, 125, 123, 121, 122, 122, 118, 119, 125, 125, 124, 130, 135, 132, 130, 132, 131, 127, 127, 129, 129, 129, 130, 129, 129, 129, 128, 127, 129, 130, 129, 128, 128, 126, 124, 124, 125, 125, 126, 128, 128, 128, 129, 127, 126, 128, 130, 128, 129, 134, 134, 131, 132, 135, 132, 126, 125, 126, 124, 120, 122, 126, 126, 124, 125, 128, 127, 123, 123, 126, 125, 121, 120, 121, 118, 113, 113, 116, 117, 120, 127, 134, 138, 144, 151, 154, 159, 163, 164, 160, 157, 150, 138, 127, 120, 112, 102, 99, 100, 99, 96, 100, 105, 108, 110, 114, 119, 119, 116, 115, 114, 111, 108, 110, 113, 117, 127, 140, 153, 167, 186, 199, 201, 202, 201, 185, 160, 143, 130, 108, 87, 83, 83, 74, 71, 83, 95, 98, 106, 122, 129, 127, 127, 128, 123, 116, 115, 114, 112, 112, 115, 115, 116, 122, 132, 138, 146, 163, 176, 180, 185, 194, 192, 178, 165, 157, 138, 111, 96, 90, 79, 69, 74, 85, 90, 94, 108, 121, 124, 127, 133, 134, 128, 124, 121, 114, 110, 112, 113, 113, 119, 128, 131, 133, 144, 158, 165, 171, 183, 193, 189, 178, 170, 161, 141, 119, 107, 101, 89, 77, 77, 84, 86, 88, 97, 111, 118, 120, 123, 129, 131, 125, 120, 123, 124, 118, 114, 121, 127, 124, 126, 137, 144, 144, 148, 156, 161, 164, 168, 171, 171, 169, 161, 148, 138, 127, 113, 100, 95, 93, 88, 87, 90, 96, 101, 105, 109, 117, 123, 120, 116, 120, 122, 116, 114, 123, 129, 127, 129, 138, 142, 141, 143, 148, 151, 153, 152, 152, 156, 157, 154, 151, 154, 152, 143, 134, 130, 124, 114, 105, 101, 101, 98, 93, 92, 100, 105, 101, 105, 120, 124, 115, 116, 128, 127, 116, 122, 136, 134, 128, 136, 145, 141, 135, 141, 147, 143, 141, 147, 151, 148, 147, 151, 151, 145, 143, 142, 133, 123, 122, 121, 111, 105, 111, 111, 100, 98, 108, 109, 100, 106, 120, 119, 113, 119, 128, 124, 120, 127, 133, 132, 133, 137, 138, 139, 139, 138, 139, 144, 145, 143, 144, 147, 145, 139, 137, 138, 135, 128, 124, 125, 124, 118, 115, 120, 121, 115, 112, 117, 117, 111, 111, 118, 120, 118, 121, 125, 125, 124, 126, 128, 129, 131, 130, 129, 130, 131, 128, 129, 135, 137, 136, 139, 142, 137, 133, 135, 134, 130, 132, 136, 132, 128, 131, 130, 123, 120, 124, 125, 119, 118, 123, 123, 117, 116, 122, 124, 119, 119, 127, 130, 124, 124, 133, 132, 124, 125, 133, 130, 123, 128, 135, 133, 130, 134, 137, 134, 131, 132, 133, 132, 131, 130, 131, 130, 127, 124, 125, 125, 122, 122, 124, 123, 121, 123, 124, 122, 124, 128, 129, 126, 128, 129, 126, 124, 126, 127, 126, 128, 129, 128, 128, 131, 130, 130, 132, 134, 133, 131, 131, 131, 130, 127, 127, 129, 128, 125, 125, 128, 126, 123, 126, 129, 124, 120, 123, 124, 118, 120, 129, 130, 126, 129, 133, 128, 122, 126, 129, 127, 129, 134, 134, 130, 131, 133, 130, 129, 133, 136, 133, 129, 130, 132, 128, 123, 125, 130, 125, 119, 121, 124, 119, 115, 120, 125, 122, 121, 126, 129, 126, 126, 129, 130, 129, 129, 131, 133, 133, 132, 133, 136, 133, 128, 130, 134, 131, 127, 131, 133, 128, 124, 124, 123, 120, 121, 124, 125, 127, 130, 128, 125, 125, 125, 123, 123, 126, 129, 130, 130, 128, 126, 125, 124, 123, 126, 131, 134, 134, 133, 133, 130, 126, 124, 124, 127, 128, 128, 129, 130, 127, 124, 127, 129, 128, 128, 132, 131, 124, 124, 128, 126, 121, 124, 130, 127, 123, 125, 129, 129, 129, 131, 133, 133, 131, 128, 127, 130, 129, 126, 126, 128, 125, 122, 122, 124, 123, 124, 127, 127, 125, 125, 127, 127, 125, 127, 131, 132, 129, 129, 133, 133, 128, 129, 134, 132, 127, 129, 133, 130, 127, 131, 131, 124, 123, 128, 125, 120, 124, 131, 128, 121, 124, 128, 123, 120, 124, 130, 129, 127, 128, 130, 128, 126, 128, 130, 130, 130, 131, 130, 127, 126, 127, 126, 124, 126, 130, 130, 130, 130, 130, 129, 127, 124, 122, 126, 129, 127, 126, 132, 134, 126, 123, 129, 131, 126, 126, 132, 131, 124, 123, 126, 125, 122, 126, 133, 132, 128, 129, 133, 128, 120, 122, 129, 127, 120, 124, 132, 129, 121, 122, 128, 124, 118, 121, 128, 130, 129, 132, 135, 135, 132, 130, 131, 132, 132, 133, 134, 133, 130, 128, 129, 128, 126, 127, 131, 130, 124, 122, 124, 124, 120, 118, 124, 127, 121, 118, 123, 128, 124, 123, 128, 130, 124, 122, 126, 127, 125, 131, 137, 136, 133, 136, 138, 131, 127, 134, 137, 131, 128, 132, 133, 126, 122, 128, 131, 126, 124, 128, 127, 122, 120, 122, 120, 118, 120, 123, 121, 119, 122, 124, 122, 121, 125, 130, 132, 133, 135, 137, 138, 134, 130, 132, 136, 135, 131, 133, 137, 133, 125, 124, 129, 128, 125, 127, 132, 129, 122, 121, 122, 118, 115, 120, 124, 121, 119, 125, 130, 124, 122, 129, 133, 126, 121, 129, 135, 131, 128, 135, 139, 132, 125, 128, 133, 131, 130, 135, 139, 135, 129, 129, 129, 126, 126, 131, 134, 130, 128, 128, 125, 117, 113, 117, 119, 115, 112, 117, 122, 119, 116, 122, 129, 128, 126, 131, 137, 137, 137, 140, 142, 138, 134, 133, 131, 127, 128, 132, 132, 129, 130, 132, 128, 124, 126, 130, 130, 127, 127, 130, 128, 122, 118, 117, 118, 117, 117, 120, 125, 129, 128, 127, 129, 129, 124, 124, 131, 134, 131, 131, 133, 130, 123, 124, 131, 131, 126, 130, 136, 129, 120, 127, 136, 132, 125, 133, 142, 134, 124, 128, 134, 127, 119, 122, 126, 121, 117, 123, 123, 117, 117, 123, 126, 126, 132, 137, 135, 131, 133, 133, 126, 123, 128, 130, 127, 128, 131, 128, 121, 122, 126, 123, 124, 135, 141, 133, 127, 130, 128, 118, 119, 132, 136, 125, 122, 129, 129, 122, 125, 137, 139, 131, 133, 138, 133, 124, 125, 129, 125, 120, 119, 121, 120, 116, 118, 121, 121, 124, 128, 129, 128, 130, 128, 127, 133, 138, 134, 131, 136, 138, 130, 123, 127, 134, 129, 120, 123, 129, 125, 121, 127, 130, 127, 130, 137, 134, 126, 123, 128, 128, 121, 122, 131, 129, 116, 115, 121, 117, 113, 126, 142, 146, 141, 140, 143, 137, 123, 122, 131, 132, 124, 125, 127, 119, 113, 114, 118, 122, 127, 130, 131, 126, 122, 129, 138, 136, 133, 136, 132, 121, 114, 113, 117, 127, 133, 133, 131, 130, 126, 121, 118, 122, 133, 138, 136, 143, 150, 138, 122, 124, 134, 136, 136, 145, 155, 147, 124, 107, 104, 99, 97, 108, 124, 129, 129, 128, 124, 118, 112, 107, 108, 113, 115, 112, 114, 122, 129, 127, 122, 128, 136, 131, 132, 155, 178, 183, 191, 211, 210, 173, 135, 124, 114, 84, 71, 96, 121, 112, 101, 111, 112, 87, 73, 92, 110, 107, 109, 129, 133, 110, 96, 106, 111, 101, 104, 128, 143, 136, 135, 155, 175, 181, 191, 211, 219, 204, 180, 160, 141, 117, 97, 98, 109, 109, 99, 98, 103, 99, 90, 89, 100, 110, 110, 109, 113, 111, 101, 102, 110, 108, 105, 114, 122, 116, 110, 117, 132, 141, 149, 171, 194, 195, 189, 200, 204, 182, 159, 151, 141, 123, 110, 113, 122, 116, 102, 98, 94, 79, 76, 95, 108, 105, 103, 106, 105, 100, 96, 100, 113, 118, 116, 119, 121, 119, 123, 130, 130, 138, 156, 171, 187, 205, 213, 207, 193, 173, 154, 137, 122, 117, 126, 127, 116, 111, 107, 90, 73, 70, 79, 94, 103, 104, 111, 117, 108, 98, 100, 102, 101, 110, 120, 122, 118, 118, 129, 142, 139, 134, 156, 186, 193, 190, 199, 207, 196, 171, 153, 152, 145, 124, 115, 126, 121, 96, 85, 91, 89, 75, 70, 88, 106, 101, 90, 97, 108, 103, 99, 107, 112, 108, 108, 117, 126, 130, 136, 149, 154, 146, 146, 165, 185, 194, 204, 213, 204, 176, 153, 146, 143, 128, 114, 115, 118, 106, 89, 84, 87, 82, 74, 77, 91, 101, 101, 102, 107, 109, 104, 99, 103, 112, 118, 122, 128, 133, 136, 141, 145, 146, 147, 152, 167, 189, 206, 205, 193, 178, 161, 146, 138, 136, 137, 135, 124, 109, 96, 83, 77, 86, 93, 87, 82, 87, 96, 103, 103, 105, 116, 118, 104, 96, 105, 118, 129, 138, 140, 139, 143, 142, 137, 142, 156, 171, 185, 191, 191, 188, 175, 157, 154, 153, 137, 123, 125, 123, 111, 99, 93, 90, 83, 72, 77, 96, 102, 100, 110, 116, 106, 97, 98, 100, 108, 122, 133, 140, 134, 123, 127, 137, 132, 128, 145, 166, 179, 187, 189, 186, 184, 174, 161, 159, 157, 144, 134, 125, 112, 103, 95, 85, 84, 89, 86, 82, 88, 96, 104, 109, 106, 104, 109, 105, 97, 106, 122, 128, 126, 125, 129, 139, 138, 132, 144, 164, 168, 170, 187, 204, 202, 185, 168, 163, 157, 137, 120, 123, 129, 120, 105, 90, 78, 71, 68, 75, 93, 108, 109, 109, 113, 108, 97, 90, 95, 108, 118, 121, 127, 133, 131, 131, 141, 148, 142, 139, 152, 171, 182, 188, 198, 202, 187, 166, 153, 142, 129, 125, 134, 139, 124, 98, 83, 78, 70, 67, 79, 99, 110, 111, 108, 105, 104, 101, 98, 97, 100, 110, 121, 124, 125, 132, 139, 138, 135, 136, 144, 164, 185, 197, 205, 206, 193, 176, 161, 150, 143, 140, 140, 139, 131, 110, 86, 76, 69, 62, 69, 94, 110, 101, 86, 88, 99, 97, 86, 94, 115, 123, 119, 120, 125, 128, 134, 147, 155, 150, 143, 156, 184, 194, 185, 184, 194, 186, 163, 149, 149, 150, 145, 135, 127, 121, 104, 82, 75, 78, 77, 80, 90, 97, 96, 89, 86, 95, 102, 97, 97, 111, 119, 118, 119, 127, 140, 152, 149, 141, 143, 146, 152, 169, 188, 199, 208, 205, 184, 167, 160, 149, 137, 131, 126, 125, 119, 101, 81, 71, 66, 64, 68, 75, 86, 101, 110, 113, 114, 106, 94, 94, 101, 111, 124, 133, 141, 150, 150, 139, 133, 138, 147, 166, 190, 202, 202, 196, 189, 181, 169, 152, 139, 131, 127, 124, 116, 104, 94, 87, 77, 69, 65, 70, 85, 101, 105, 104, 103, 101, 99, 98, 92, 98, 120, 137, 139, 140, 147, 152, 144, 133, 137, 155, 172, 187, 202, 201, 185, 177, 180, 177, 162, 146, 139, 136, 118, 91, 87, 96, 89, 75, 72, 74, 75, 79, 86, 97, 109, 111, 104, 98, 94, 97, 111, 124, 130, 137, 145, 152, 153, 145, 135, 139, 156, 170, 180, 185, 188, 195, 196, 181, 161, 152, 147, 139, 133, 124, 110, 102, 94, 79, 65, 64, 70, 80, 92, 96, 98, 102, 103, 97, 95, 99, 106, 117, 126, 127, 130, 141, 151, 154, 150, 145, 150, 158, 157, 162, 179, 193, 197, 195, 186, 172, 156, 132, 115, 122, 129, 119, 111, 107, 90, 72, 66, 66, 73, 87, 98, 109, 114, 101, 88, 94, 101, 102, 108, 118, 126, 135, 140, 144, 150, 146, 141, 149, 157, 154, 161, 176, 186, 194, 193, 180, 170, 165, 147, 133, 134, 132, 120, 109, 97, 87, 82, 74, 71, 85, 98, 96, 93, 94, 96, 98, 98, 103, 116, 125, 124, 126, 129, 128, 133, 142, 144, 146, 149, 150, 154, 159, 154, 150, 159, 166, 163, 160, 161, 164, 165, 160, 150, 140, 128, 116, 108, 103, 99, 92, 90, 94, 93, 85, 81, 85, 88, 91, 97, 103, 106, 108, 113, 118, 122, 126, 134, 143, 149, 155, 160, 162, 162, 161, 162, 165, 162, 155, 159, 168, 166, 160, 162, 160, 148, 135, 125, 114, 103, 95, 92, 92, 86, 76, 77, 85, 84, 82, 89, 103, 114, 113, 108, 114, 118, 113, 115, 127, 135, 142, 152, 158, 162, 164, 157, 154, 163, 164, 161, 167, 171, 170, 169, 166, 155, 145, 136, 128, 121, 111, 99, 94, 93, 88, 84, 83, 84, 89, 92, 91, 96, 105, 105, 106, 113, 115, 115, 118, 120, 127, 141, 147, 147, 155, 165, 164, 159, 156, 158, 161, 162, 161, 163, 166, 164, 160, 153, 146, 137, 124, 113, 106, 99, 89, 85, 86, 87, 90, 93, 93, 96, 105, 111, 111, 110, 114, 118, 118, 117, 116, 119, 127, 133, 136, 141, 149, 154, 157, 161, 161, 160, 164, 166, 162, 162, 165, 162, 154, 148, 143, 135, 121, 107, 102, 100, 93, 86, 87, 90, 91, 92, 93, 102, 107, 105, 111, 122, 119, 112, 117, 124, 122, 122, 127, 133, 145, 149, 148, 156, 159, 155, 154, 158, 156, 153, 157, 162, 166, 162, 155, 156, 153, 139, 126, 120, 112, 102, 94, 85, 82, 83, 77, 78, 89, 93, 94, 104, 113, 112, 114, 120, 120, 122, 125, 127, 133, 137, 139, 142, 148, 153, 155, 154, 153, 158, 164, 161, 159, 162, 165, 166, 162, 154, 150, 147, 138, 123, 113, 103, 93, 89, 85, 82, 85, 91, 94, 95, 100, 103, 103, 105, 109, 114, 114, 117, 121, 125, 132, 136, 138, 143, 148, 149, 145, 148, 152, 151, 152, 155, 158, 159, 156, 159, 161, 158, 157, 154, 147, 135, 125, 118, 108, 101, 93, 91, 96, 88, 79, 85, 95, 98, 99, 106, 112, 117, 115, 107, 112, 122, 124, 126, 134, 143, 143, 143, 144, 149, 152, 149, 153, 159, 155, 154, 158, 159, 157, 158, 159, 153, 151, 145, 136, 134, 126, 113, 106, 98, 88, 79, 79, 81, 83, 90, 93, 97, 104, 105, 110, 117, 122, 128, 130, 130, 132, 135, 135, 137, 145, 148, 150, 152, 149, 147, 150, 153, 153, 155, 160, 158, 157, 155, 150, 149, 146, 141, 132, 124, 117, 105, 98, 94, 92, 91, 88, 91, 92, 92, 98, 102, 108, 113, 115, 119, 118, 120, 124, 126, 133, 136, 139, 141, 140, 144, 144, 147, 151, 152, 154, 152, 147, 146, 148, 149, 146, 149, 151, 145, 140, 135, 130, 125, 123, 119, 113, 110, 103, 100, 99, 94, 97, 101, 102, 103, 103, 109, 114, 117, 123, 127, 135, 131, 126, 131, 128, 125, 128, 134, 140, 141, 149, 153, 155, 159, 156, 157, 156, 149, 147, 145, 143, 138, 133, 130, 121, 113, 104, 101, 104, 101, 102, 108, 111, 108, 101, 103, 107, 113, 113, 116, 130, 134, 130, 132, 135, 137, 135, 138, 139, 133, 135, 134, 134, 134, 133, 140, 141, 141, 143, 144, 149, 148, 148, 150, 145, 141, 133, 125, 121, 114, 112, 110, 108, 108, 106, 106, 103, 101, 102, 102, 104, 106, 109, 114, 117, 122, 125, 131, 133, 132, 136, 139, 141, 138, 140, 147, 145, 145, 149, 152, 156, 158, 164, 165, 160, 161, 156, 147, 136, 125, 122, 110, 99, 96, 92, 92, 90, 94, 98, 98, 102, 101, 102, 105, 105, 110, 114, 118, 124, 126, 129, 132, 135, 136, 139, 146, 146, 143, 145, 149, 149, 147, 154, 160, 163, 165, 167, 169, 161, 153, 151, 140, 127, 115, 109, 102, 91, 90, 89, 88, 92, 92, 97, 100, 100, 107, 109, 113, 115, 116, 122, 121, 124, 127, 127, 133, 134, 136, 140, 141, 145, 146, 149, 151, 150, 152, 153, 154, 155, 157, 161, 159, 155, 153, 148, 138, 126, 122, 115, 106, 99, 96, 94, 88, 88, 93, 93, 96, 100, 107, 110, 109, 117, 121, 123, 127, 129, 134, 134, 134, 139, 139, 142, 145, 147, 149, 147, 149, 147, 144, 146, 145, 145, 144, 143, 142, 136, 134, 133, 129, 126, 125, 124, 119, 115, 113, 110, 106, 103, 104, 105, 103, 107, 110, 114, 115, 117, 123, 123, 124, 127, 129, 133, 132, 136, 140, 138, 141, 140, 141, 141, 138, 140, 139, 137, 137, 135, 137, 136, 134, 136, 135, 134, 132, 129, 130, 126, 124, 123, 121, 118, 115, 114, 114, 112, 113, 115, 115, 115, 116, 118, 119, 120, 123, 128, 129, 129, 131, 131, 131, 130, 133, 136, 136, 139, 139, 138, 138, 135, 136, 134, 132, 135, 132, 132, 131, 129, 129, 127, 127, 128, 127, 127, 126, 127, 125, 122, 123, 120, 118, 117, 115, 116, 116, 116, 119, 121, 122, 123, 127, 128, 128, 131, 133, 134, 135, 135, 135, 135, 134, 134, 135, 134, 133, 134, 133, 132, 132, 129, 130, 127, 125, 127, 126, 126, 129, 130, 131, 129, 128, 124, 120, 118, 116, 117, 117, 118, 122, 121, 121, 125, 126, 126, 129, 132, 133, 131, 131, 131, 130, 128, 129, 130, 129, 130, 131, 133, 132, 132, 134, 133, 132, 130, 129, 130, 125, 126, 128, 125, 127, 126, 126, 127, 124, 124, 126, 125, 125, 124, 125, 123, 123, 122, 122, 124, 124, 124, 128, 128, 128, 127, 129, 130, 126, 127, 130, 129, 129, 132, 135, 135, 133, 134, 134, 131, 130, 130, 130, 129, 127, 128, 127, 123, 124, 126, 124, 126, 126, 126, 127, 125, 125, 126, 124, 125, 124, 122, 122, 120, 121, 121, 121, 126, 127, 128, 132, 133, 134, 133, 136, 137, 133, 134, 134, 131, 128, 127, 129, 127, 126, 129, 129, 129, 126, 128, 131, 126, 128, 130, 127, 128, 126, 125, 126, 122, 122, 123, 121, 120, 119, 120, 121, 119, 122, 124, 124, 126, 129, 131, 133, 135, 135, 136, 137, 135, 134, 133, 134, 132, 129, 132, 131, 128, 131, 132, 132, 131, 130, 131, 128, 123, 122, 122, 118, 116, 119, 119, 117, 119, 119, 121, 122, 122, 126, 126, 127, 127, 127, 130, 128, 130, 134, 131, 133, 133, 132, 133, 130, 133, 133, 131, 137, 136, 134, 139, 138, 137, 137, 136, 134, 129, 125, 123, 118, 114, 112, 112, 110, 108, 112, 113, 113, 117, 120, 123, 126, 128, 132, 133, 133, 133, 132, 132, 131, 129, 131, 132, 132, 134, 137, 140, 138, 142, 145, 142, 145, 146, 141, 143, 138, 132, 130, 122, 116, 113, 106, 105, 102, 98, 100, 101, 102, 105, 111, 116, 119, 126, 131, 132, 136, 137, 139, 138, 135, 137, 134, 132, 136, 136, 139, 144, 147, 150, 154, 157, 156, 157, 157, 150, 146, 141, 127, 121, 110, 97, 93, 85, 80, 82, 80, 85, 92, 96, 105, 115, 121, 129, 136, 141, 143, 144, 143, 141, 139, 135, 134, 134, 131, 137, 141, 144, 155, 160, 163, 171, 172, 170, 168, 162, 152, 140, 131, 116, 102, 94, 80, 73, 71, 65, 70, 73, 77, 90, 97, 108, 121, 129, 138, 144, 149, 150, 149, 148, 141, 139, 134, 128, 130, 128, 133, 141, 145, 158, 166, 171, 179, 180, 179, 174, 168, 157, 140, 130, 113, 95, 87, 73, 65, 63, 59, 63, 66, 74, 85, 95, 109, 119, 132, 142, 148, 155, 155, 155, 153, 145, 142, 135, 130, 128, 125, 131, 135, 141, 155, 161, 172, 180, 183, 187, 180, 175, 166, 146, 136, 118, 97, 88, 73, 61, 58, 55, 55, 59, 68, 77, 89, 103, 115, 128, 139, 148, 156, 157, 160, 158, 151, 148, 139, 134, 131, 126, 129, 132, 136, 150, 156, 165, 178, 179, 184, 184, 174, 168, 155, 137, 125, 105, 90, 79, 64, 59, 56, 53, 58, 65, 72, 85, 96, 110, 124, 135, 146, 156, 159, 163, 164, 158, 155, 149, 138, 136, 131, 125, 131, 132, 138, 150, 155, 166, 174, 176, 182, 177, 169, 163, 146, 132, 119, 100, 85, 75, 65, 57, 57, 57, 58, 67, 76, 84, 99, 113, 123, 137, 149, 155, 161, 166, 163, 160, 158, 147, 140, 138, 129, 128, 133, 132, 140, 152, 156, 167, 177, 177, 182, 179, 169, 162, 147, 132, 117, 98, 86, 73, 60, 57, 53, 50, 57, 64, 69, 84, 99, 107, 126, 141, 146, 160, 166, 164, 167, 163, 156, 148, 143, 138, 128, 133, 134, 132, 149, 154, 158, 177, 178, 179, 187, 175, 166, 159, 138, 122, 108, 89, 76, 66, 55, 52, 51, 51, 60, 67, 77, 94, 104, 119, 136, 143, 155, 164, 162, 165, 163, 156, 150, 144, 138, 131, 130, 134, 133, 143, 156, 158, 172, 184, 179, 186, 185, 168, 164, 148, 126, 114, 95, 78, 68, 56, 50, 47, 49, 53, 61, 73, 84, 100, 115, 128, 144, 153, 161, 167, 167, 165, 161, 155, 146, 140, 136, 128, 132, 136, 135, 153, 160, 165, 185, 182, 184, 191, 174, 165, 156, 133, 116, 102, 82, 65, 59, 48, 39, 48, 47, 51, 72, 78, 93, 117, 124, 142, 158, 160, 170, 174, 166, 165, 162, 145, 143, 141, 124, 132, 138, 130, 151, 161, 159, 182, 184, 178, 189, 176, 161, 157, 135, 114, 105, 84, 65, 62, 50, 38, 50, 48, 48, 73, 80, 89, 119, 127, 138, 161, 163, 167, 177, 167, 163, 163, 145, 140, 139, 122, 128, 136, 127, 147, 162, 157, 180, 187, 177, 189, 181, 161, 159, 139, 115, 106, 86, 64, 60, 49, 36, 46, 48, 47, 72, 82, 90, 121, 132, 140, 164, 168, 168, 178, 172, 163, 160, 148, 137, 134, 124, 124, 133, 129, 144, 161, 159, 178, 189, 179, 187, 183, 161, 154, 139, 113, 99, 85, 62, 52, 48, 35, 40, 49, 48, 70, 87, 94, 123, 138, 145, 167, 174, 171, 180, 175, 162, 159, 148, 134, 132, 124, 122, 132, 132, 146, 163, 165, 181, 193, 183, 187, 185, 161, 150, 138, 108, 89, 78, 53, 39, 40, 30, 31, 47, 53, 68, 94, 108, 128, 151, 160, 173, 183, 179, 180, 174, 160, 153, 138, 126, 123, 113, 116, 128, 130, 147, 169, 171, 188, 205, 193, 194, 196, 167, 151, 141, 104, 82, 70, 41, 26, 27, 19, 20, 38, 52, 67, 95, 118, 134, 158, 175, 181, 189, 192, 182, 172, 165, 148, 128, 125, 115, 103, 116, 124, 124, 151, 171, 172, 195, 211, 197, 200, 201, 170, 153, 141, 103, 77, 64, 36, 19, 18, 15, 17, 34, 53, 71, 96, 125, 143, 161, 183, 187, 187, 195, 180, 164, 162, 138, 117, 122, 106, 96, 121, 124, 126, 165, 180, 180, 212, 220, 203, 210, 202, 168, 150, 131, 92, 65, 47, 25, 7, 6, 11, 14, 31, 61, 81, 103, 138, 157, 169, 191, 195, 189, 193, 177, 159, 152, 128, 112, 114, 99, 98, 124, 126, 138, 179, 187, 194, 226, 224, 208, 214, 196, 159, 141, 115, 75, 48, 31, 10, 0, 0, 10, 15, 37, 74, 92, 116, 154, 170, 180, 200, 202, 193, 190, 176, 157, 141, 122, 112, 104, 95, 107, 120, 125, 152, 179, 185, 206, 226, 217, 211, 209, 183, 152, 130, 100, 63, 39, 24, 6, 0, 5, 16, 23, 52, 85, 102, 131, 164, 176, 188, 201, 200, 191, 181, 169, 153, 131, 120, 116, 100, 101, 120, 120, 131, 167, 176, 184, 213, 215, 204, 206, 192, 163, 139, 116, 85, 55, 36, 22, 7, 5, 19, 29, 43, 77, 103, 120, 151, 172, 179, 192, 197, 192, 184, 171, 159, 143, 121, 114, 108, 93, 102, 119, 118, 138, 169, 173, 186, 210, 205, 196, 198, 181, 153, 134, 112, 80, 55, 43, 28, 16, 22, 34, 41, 61, 90, 107, 128, 156, 169, 178, 190, 191, 185, 177, 166, 154, 137, 123, 116, 107, 101, 107, 115, 120, 136, 155, 162, 175, 190, 188, 184, 183, 170, 151, 134, 119, 95, 74, 68, 52, 40, 48, 51, 55, 74, 91, 104, 121, 141, 152, 160, 171, 175, 173, 171, 167, 158, 147, 141, 132, 121, 120, 117, 115, 120, 123, 128, 133, 139, 144, 147, 149, 148, 148, 144, 135, 134, 124, 113, 114, 107, 100, 105, 104, 102, 107, 112, 113, 116, 124, 124, 125, 131, 130, 130, 129, 129, 128, 125, 128, 126, 124, 130, 128, 130, 135, 134, 137, 139, 139, 140, 141, 142, 139, 141, 142, 134, 138, 136, 126, 129, 127, 120, 123, 125, 122, 123, 127, 124, 122, 123, 119, 116, 115, 114, 113, 112, 115, 113, 114, 118, 117, 121, 124, 124, 131, 132, 133, 137, 136, 137, 137, 138, 137, 134, 138, 135, 132, 137, 134, 132, 136, 136, 135, 137, 140, 138, 137, 140, 137, 133, 134, 130, 124, 122, 119, 113, 111, 109, 103, 103, 102, 101, 106, 106, 110, 118, 119, 122, 130, 129, 130, 136, 136, 134, 141, 141, 139, 144, 142, 141, 141, 139, 141, 137, 139, 141, 136, 139, 138, 133, 135, 132, 131, 129, 127, 127, 123, 122, 120, 115, 115, 109, 107, 109, 103, 106, 109, 107, 112, 117, 117, 120, 126, 126, 128, 134, 134, 137, 140, 143, 146, 145, 149, 147, 141, 145, 138, 133, 136, 127, 128, 129, 124, 129, 129, 129, 131, 131, 132, 127, 127, 124, 118, 120, 117, 114, 117, 114, 116, 114, 113, 116, 112, 117, 122, 120, 128, 132, 132, 135, 137, 137, 135, 138, 137, 134, 137, 132, 130, 131, 124, 127, 128, 126, 132, 133, 134, 137, 137, 135, 135, 133, 130, 128, 126, 124, 123, 118, 120, 120, 114, 121, 120, 116, 124, 122, 122, 127, 126, 129, 128, 129, 132, 125, 128, 128, 123, 126, 127, 126, 127, 128, 131, 128, 130, 135, 130, 135, 138, 133, 136, 134, 131, 132, 127, 128, 131, 126, 128, 130, 125, 126, 127, 123, 123, 125, 124, 123, 123, 122, 122, 120, 121, 124, 120, 124, 128, 123, 125, 130, 126, 128, 134, 133, 133, 136, 135, 130, 130, 129, 126, 127, 129, 131, 131, 131, 133, 129, 127, 129, 127, 127, 129, 129, 128, 125, 127, 123, 120, 124, 121, 123, 124, 123, 125, 120, 123, 126, 122, 132, 134, 130, 136, 130, 127, 126, 123, 130, 130, 134, 142, 137, 137, 133, 123, 120, 118, 118, 122, 126, 130, 131, 129, 126, 123, 119, 120, 126, 128, 134, 140, 137, 136, 131, 124, 122, 119, 123, 125, 127, 133, 130, 129, 127, 122, 123, 122, 126, 131, 133, 139, 138, 136, 137, 130, 127, 124, 120, 120, 119, 118, 119, 119, 121, 122, 124, 126, 129, 132, 129, 132, 132, 129, 131, 129, 128, 131, 129, 130, 132, 131, 133, 134, 131, 132, 131, 127, 128, 125, 122, 126, 122, 123, 125, 123, 125, 124, 122, 125, 123, 125, 126, 125, 129, 127, 129, 129, 127, 132, 130, 131, 134, 131, 135, 133, 128, 132, 128, 127, 129, 128, 130, 130, 128, 128, 127, 124, 123, 122, 117, 119, 120, 116, 119, 119, 122, 129, 126, 135, 140, 138, 141, 136, 135, 131, 122, 123, 120, 122, 126, 126, 134, 135, 139, 144, 138, 143, 142, 137, 138, 129, 128, 124, 112, 112, 107, 106, 106, 104, 111, 112, 115, 118, 117, 124, 122, 123, 127, 123, 131, 128, 124, 130, 127, 131, 135, 136, 150, 155, 160, 170, 173, 178, 175, 172, 169, 159, 148, 132, 118, 101, 82, 72, 59, 55, 59, 60, 75, 88, 101, 118, 125, 139, 147, 146, 151, 147, 144, 136, 122, 119, 109, 103, 105, 107, 123, 136, 151, 178, 195, 212, 226, 227, 231, 221, 198, 175, 146, 115, 85, 52, 32, 22, 11, 9, 21, 37, 56, 77, 101, 133, 153, 165, 181, 185, 180, 168, 150, 136, 116, 97, 88, 82, 81, 89, 103, 124, 146, 173, 201, 224, 243, 255, 255, 249, 229, 203, 170, 130, 93, 58, 25, 4, 0, 0, 0, 13, 39, 68, 96, 127, 154, 172, 182, 188, 185, 171, 155, 136, 116, 97, 80, 78, 79, 80, 99, 118, 139, 166, 186, 216, 236, 241, 255, 253, 238, 220, 187, 159, 123, 81, 56, 30, 11, 4, 0, 12, 27, 44, 73, 99, 126, 150, 165, 176, 178, 171, 160, 142, 124, 110, 96, 87, 87, 89, 99, 113, 127, 150, 169, 184, 204, 214, 222, 229, 222, 217, 206, 185, 167, 139, 109, 88, 60, 38, 27, 19, 23, 30, 41, 65, 86, 105, 126, 146, 161, 167, 168, 168, 159, 142, 124, 112, 98, 85, 84, 89, 99, 111, 126, 150, 165, 177, 196, 207, 214, 217, 216, 217, 203, 185, 172, 146, 123, 98, 74, 60, 41, 32, 34, 31, 43, 58, 70, 94, 110, 128, 148, 153, 164, 166, 155, 151, 138, 121, 111, 98, 95, 96, 96, 112, 130, 137, 155, 174, 184, 191, 192, 201, 207, 193, 189, 190, 176, 161, 138, 124, 111, 82, 66, 57, 48, 45, 40, 49, 65, 75, 92, 107, 125, 145, 148, 153, 156, 153, 146, 130, 122, 118, 106, 99, 99, 109, 116, 122, 141, 157, 170, 178, 182, 193, 190, 185, 186, 179, 177, 171, 157, 154, 139, 122, 109, 87, 77, 67, 48, 49, 51, 54, 63, 72, 95, 116, 123, 140, 155, 160, 158, 147, 142, 137, 120, 110, 106, 104, 108, 109, 113, 129, 142, 152, 160, 169, 184, 187, 178, 181, 184, 180, 172, 164, 165, 160, 141, 128, 117, 99, 85, 67, 55, 54, 50, 54, 61, 70, 95, 112, 121, 139, 153, 160, 155, 143, 142, 133, 114, 105, 102, 103, 104, 108, 121, 134, 144, 156, 166, 170, 175, 178, 175, 172, 171, 174, 174, 168, 168, 168, 156, 142, 127, 110, 94, 74, 61, 54, 46, 52, 60, 69, 87, 108, 129, 142, 147, 155, 155, 140, 124, 114, 105, 96, 89, 92, 105, 118, 128, 143, 155, 170, 178, 171, 171, 173, 169, 164, 154, 163, 178, 172, 170, 173, 174, 167, 137, 118, 113, 89, 66, 48, 44, 51, 44, 49, 72, 92, 115, 128, 139, 157, 158, 150, 138, 123, 117, 107, 93, 90, 98, 112, 121, 127, 145, 166, 174, 168, 168, 175, 173, 162, 157, 169, 182, 182, 182, 185, 188, 178, 147, 123, 108, 84, 56, 31, 27, 37, 34, 38, 66, 100, 122, 132, 152, 171, 167, 151, 136, 127, 111, 89, 82, 86, 91, 99, 113, 133, 148, 162, 174, 177, 179, 177, 175, 174, 168, 177, 188, 186, 193, 195, 188, 175, 151, 133, 107, 75, 59, 40, 28, 28, 27, 44, 62, 79, 110, 129, 143, 157, 156, 150, 139, 124, 111, 95, 88, 91, 90, 100, 118, 134, 151, 162, 171, 181, 175, 167, 168, 163, 164, 170, 181, 196, 200, 204, 204, 187, 165, 138, 113, 84, 49, 37, 30, 19, 27, 41, 65, 90, 106, 129, 146, 153, 150, 136, 131, 122, 103, 96, 92, 98, 105, 102, 118, 137, 143, 150, 152, 162, 165, 152, 159, 165, 168, 188, 193, 207, 222, 210, 207, 186, 155, 139, 105, 84, 71, 52, 59, 51, 47, 65, 67, 82, 90, 96, 121, 115, 117, 126, 111, 117, 111, 100, 108, 103, 112, 115, 115, 139, 144, 149, 163, 163, 170, 163, 154, 165, 162, 164, 180, 192, 205, 205, 201, 199, 173, 147, 129, 104, 85, 70, 56, 57, 53, 50, 60, 67, 82, 92, 100, 119, 117, 121, 126, 111, 116, 113, 105, 112, 107, 122, 131, 125, 147, 154, 152, 159, 151, 154, 147, 141, 153, 155, 174, 194, 201, 219, 216, 206, 194, 162, 138, 112, 87, 72, 55, 51, 52, 47, 57, 65, 73, 91, 100, 108, 123, 126, 126, 128, 123, 121, 119, 117, 116, 114, 127, 130, 128, 143, 148, 150, 148, 141, 149, 142, 139, 153, 160, 181, 196, 202, 215, 208, 200, 177, 148, 135, 103, 80, 73, 54, 53, 54, 53, 63, 71, 88, 98, 107, 121, 124, 130, 127, 123, 126, 119, 117, 118, 119, 123, 124, 134, 138, 140, 150, 150, 146, 142, 141, 137, 131, 143, 149, 163, 184, 189, 202, 206, 195, 185, 161, 143, 123, 94, 81, 67, 55, 54, 53, 62, 69, 86, 102, 105, 122, 131, 125, 125, 124, 120, 114, 112, 117, 118, 120, 126, 135, 141, 144, 150, 152, 153, 145, 137, 140, 131, 132, 143, 149, 168, 181, 190, 200, 198, 192, 172, 153, 139, 109, 91, 79, 62, 58, 57, 59, 66, 81, 94, 100, 115, 124, 125, 125, 121, 123, 118, 114, 120, 120, 122, 131, 136, 138, 140, 151, 148, 141, 146, 137, 134, 132, 126, 137, 145, 155, 170, 182, 199, 198, 192, 188, 167, 150, 128, 103, 91, 77, 64, 58, 63, 67, 67, 85, 95, 100, 117, 120, 119, 126, 123, 117, 118, 118, 116, 120, 125, 128, 135, 137, 143, 148, 143, 145, 147, 139, 135, 137, 140, 138, 149, 164, 167, 181, 191, 186, 186, 177, 159, 144, 128, 110, 92, 84, 72, 64, 67, 63, 68, 82, 85, 96, 110, 114, 119, 122, 124, 119, 120, 124, 120, 127, 136, 136, 144, 149, 151, 151, 149, 148, 141, 137, 136, 130, 131, 135, 140, 150, 156, 168, 182, 177, 178, 181, 161, 148, 139, 115, 101, 92, 76, 70, 70, 69, 69, 78, 89, 94, 106, 115, 117, 126, 124, 122, 127, 123, 124, 128, 129, 133, 135, 138, 141, 140, 146, 146, 144, 147, 145, 141, 141, 141, 143, 146, 153, 162, 166, 170, 173, 167, 156, 148, 136, 118, 108, 99, 87, 82, 80, 77, 77, 82, 88, 91, 98, 108, 109, 114, 121, 121, 124, 129, 130, 134, 136, 138, 139, 138, 140, 140, 142, 144, 143, 148, 145, 142, 144, 138, 139, 143, 142, 151, 153, 155, 163, 158, 156, 157, 145, 136, 131, 119, 107, 101, 93, 82, 81, 81, 78, 83, 90, 93, 101, 108, 113, 120, 124, 128, 134, 133, 137, 140, 136, 138, 139, 135, 138, 139, 140, 141, 140, 144, 142, 141, 145, 142, 143, 148, 148, 152, 156, 158, 158, 158, 153, 146, 141, 129, 116, 108, 96, 86, 83, 80, 77, 81, 89, 90, 98, 109, 110, 116, 122, 122, 126, 127, 129, 130, 131, 135, 133, 136, 138, 136, 144, 142, 144, 152, 145, 146, 148, 139, 141, 143, 141, 146, 152, 154, 156, 160, 158, 152, 150, 140, 130, 122, 110, 101, 94, 86, 83, 83, 84, 88, 94, 99, 103, 107, 112, 114, 114, 120, 123, 124, 130, 132, 131, 135, 136, 138, 143, 148, 151, 153, 154, 151, 150, 148, 142, 143, 139, 137, 142, 139, 142, 146, 145, 147, 147, 145, 140, 132, 126, 114, 105, 102, 93, 94, 96, 94, 100, 102, 103, 105, 105, 107, 109, 112, 115, 115, 119, 119, 119, 125, 127, 132, 140, 142, 147, 151, 152, 156, 155, 152, 152, 147, 144, 142, 137, 138, 140, 139, 143, 145, 145, 146, 142, 139, 137, 131, 126, 122, 116, 108, 104, 99, 94, 93, 93, 93, 99, 103, 105, 110, 111, 111, 114, 116, 118, 124, 126, 130, 135, 136, 141, 147, 148, 150, 150, 149, 150, 145, 142, 144, 144, 145, 145, 145, 146, 142, 140, 141, 139, 140, 138, 136, 133, 126, 121, 116, 109, 106, 102, 101, 101, 99, 99, 100, 98, 99, 101, 106, 110, 112, 119, 122, 123, 125, 127, 132, 135, 135, 140, 143, 144, 146, 146, 148, 152, 152, 152, 152, 148, 144, 143, 141, 140, 142, 142, 141, 140, 136, 134, 132, 127, 123, 120, 116, 111, 107, 103, 99, 97, 96, 98, 102, 103, 107, 110, 112, 114, 114, 117, 123, 124, 126, 131, 134, 136, 137, 138, 142, 145, 148, 153, 152, 151, 151, 148, 147, 146, 143, 142, 138, 136, 134, 134, 137, 136, 137, 137, 132, 130, 123, 115, 112, 106, 101, 101, 99, 99, 98, 100, 102, 102, 106, 108, 112, 118, 118, 122, 126, 127, 129, 131, 134, 139, 144, 147, 149, 149, 148, 148, 149, 146, 145, 144, 140, 137, 136, 136, 139, 141, 141, 142, 142, 141, 137, 133, 130, 124, 119, 116, 111, 106, 103, 100, 99, 100, 101, 103, 106, 107, 110, 113, 113, 113, 116, 118, 118, 125, 130, 133, 138, 140, 143, 148, 150, 154, 154, 153, 152, 148, 144, 141, 141, 139, 137, 139, 142, 142, 143, 143, 140, 137, 132, 126, 120, 114, 109, 105, 102, 100, 101, 101, 99, 100, 104, 105, 105, 107, 110, 111, 112, 116, 122, 125, 127, 131, 136, 138, 142, 147, 149, 149, 149, 151, 149, 146, 146, 145, 141, 141, 145, 147, 146, 146, 148, 147, 142, 139, 137, 130, 124, 118, 112, 107, 102, 97, 94, 93, 95, 96, 98, 102, 106, 108, 108, 112, 116, 117, 119, 124, 129, 132, 136, 142, 145, 144, 145, 149, 148, 147, 148, 149, 147, 146, 147, 146, 144, 144, 147, 147, 145, 148, 150, 146, 139, 134, 130, 121, 112, 106, 100, 92, 88, 88, 88, 88, 92, 98, 103, 107, 111, 114, 117, 120, 123, 125, 129, 133, 134, 133, 134, 139, 143, 143, 145, 149, 153, 154, 152, 150, 147, 146, 145, 145, 145, 147, 149, 149, 150, 147, 143, 138, 129, 121, 115, 108, 102, 96, 90, 86, 87, 91, 94, 98, 102, 108, 114, 117, 117, 119, 124, 124, 124, 126, 131, 136, 133, 133, 135, 136, 142, 149, 153, 151, 150, 152, 148, 143, 145, 150, 150, 150, 153, 153, 151, 144, 141, 137, 130, 124, 115, 109, 105, 97, 93, 92, 90, 94, 98, 100, 102, 104, 107, 111, 116, 116, 120, 126, 131, 132, 126, 126, 128, 134, 138, 141, 149, 145, 145, 150, 147, 145, 148, 152, 148, 149, 152, 153, 155, 152, 151, 145, 141, 137, 130, 124, 112, 106, 97, 93, 94, 90, 92, 95, 97, 95, 97, 105, 113, 117, 117, 126, 125, 124, 126, 124, 128, 129, 135, 137, 139, 143, 143, 147, 148, 146, 144, 152, 152, 148, 150, 146, 153, 158, 156, 157, 157, 150, 140, 133, 123, 114, 99, 93, 97, 87, 86, 94, 107, 96, 83, 102, 114, 111, 103, 110, 120, 121, 126, 124, 133, 132, 134, 142, 141, 146, 134, 140, 150, 143, 138, 140, 155, 151, 146, 148, 150, 161, 157, 154, 156, 154, 144, 132, 131, 124, 117, 108, 106, 106, 86, 76, 83, 85, 89, 99, 105, 105, 107, 118, 119, 115, 123, 121, 127, 139, 137, 138, 139, 136, 135, 143, 143, 142, 148, 149, 153, 143, 143, 152, 142, 150, 162, 168, 166, 157, 155, 146, 137, 132, 125, 111, 94, 88, 82, 78, 72, 78, 90, 91, 98, 107, 119, 126, 115, 112, 118, 117, 118, 126, 128, 130, 137, 137, 139, 153, 158, 150, 150, 148, 140, 151, 172, 179, 180, 180, 184, 178, 152, 135, 127, 117, 99, 85, 92, 95, 86, 78, 83, 85, 85, 102, 118, 125, 109, 114, 128, 112, 110, 112, 119, 120, 108, 117, 127, 130, 130, 137, 143, 150, 153, 142, 146, 138, 140, 178, 199, 195, 198, 211, 199, 157, 132, 119, 96, 94, 104, 104, 104, 92, 84, 75, 63, 67, 83, 102, 106, 121, 129, 123, 119, 104, 119, 119, 105, 105, 116, 139, 128, 136, 145, 146, 152, 133, 138, 136, 136, 143, 164, 214, 216, 200, 207, 222, 172, 93, 98, 126, 127, 106, 113, 128, 96, 72, 62, 59, 56, 58, 91, 120, 117, 120, 138, 118, 100, 103, 109, 125, 119, 123, 136, 139, 135, 146, 156, 142, 135, 131, 132, 119, 110, 129, 154, 209, 231, 222, 221, 205, 167, 111, 93, 114, 135, 127, 117, 115, 85, 60, 42, 44, 67, 93, 125, 132, 129, 121, 114, 103, 94, 105, 100, 110, 125, 132, 131, 128, 134, 129, 149, 147, 133, 146, 145, 134, 112, 128, 181, 223, 244, 217, 197, 184, 148, 102, 79, 105, 136, 139, 111, 93, 85, 52, 50, 68, 77, 107, 125, 136, 138, 112, 99, 103, 115, 118, 103, 115, 130, 122, 114, 129, 137, 131, 147, 150, 137, 131, 134, 135, 115, 150, 217, 242, 240, 205, 183, 166, 120, 88, 99, 132, 137, 119, 101, 85, 71, 43, 43, 72, 96, 124, 137, 126, 109, 106, 115, 117, 134, 129, 100, 97, 104, 122, 132, 138, 148, 146, 151, 132, 124, 138, 127, 107, 117, 182, 240, 248, 219, 194, 181, 136, 100, 88, 119, 156, 129, 104, 101, 90, 70, 59, 72, 98, 108, 96, 107, 104, 102, 121, 127, 126, 101, 93, 97, 98, 116, 133, 151, 148, 137, 132, 138, 132, 123, 152, 147, 146, 182, 207, 221, 218, 201, 168, 146, 138, 123, 114, 120, 133, 116, 90, 82, 90, 85, 71, 79, 91, 102, 89, 90, 110, 117, 118, 112, 120, 108, 106, 120, 116, 119, 116, 142, 139, 124, 136, 133, 150, 137, 136, 150, 162, 215, 221, 204, 195, 185, 141, 110, 143, 147, 141, 123, 112, 127, 101, 73, 60, 81, 109, 96, 92, 102, 106, 97, 93, 103, 116, 109, 98, 115, 123, 116, 105, 105, 122, 131, 114, 119, 159, 165, 147, 125, 140, 185, 205, 222, 213, 194, 181, 164, 154, 145, 156, 135, 104, 97, 84, 77, 77, 98, 109, 102, 90, 76, 87, 88, 84, 92, 112, 131, 123, 111, 104, 108, 111, 102, 118, 142, 140, 139, 156, 153, 142, 141, 147, 182, 200, 194, 188, 180, 178, 167, 147, 136, 135, 136, 130, 104, 77, 88, 110, 114, 106, 91, 92, 85, 74, 87, 91, 103, 120, 116, 108, 91, 95, 118, 129, 138, 142, 141, 137, 146, 137, 125, 141, 146, 170, 191, 181, 170, 176, 194, 172, 147, 151, 150, 145, 124, 113, 116, 114, 106, 85, 76, 82, 89, 91, 86, 89, 91, 87, 100, 113, 115, 118, 120, 121, 117, 120, 117, 129, 161, 160, 150, 131, 136, 163, 160, 167, 163, 168, 187, 175, 160, 151, 153, 135, 132, 138, 118, 114, 115, 128, 111, 89, 101, 98, 99, 84, 74, 88, 96, 105, 111, 112, 108, 114, 107, 105, 124, 130, 140, 148, 150, 142, 126, 120, 134, 160, 165, 167, 171, 173, 164, 154, 166, 167, 163, 148, 126, 117, 115, 121, 115, 124, 138, 124, 95, 68, 67, 72, 87, 108, 124, 136, 127, 105, 80, 83, 96, 115, 137, 137, 146, 148, 130, 113, 115, 130, 152, 176, 178, 180, 168, 160, 167, 156, 159, 158, 149, 132, 116, 123, 109, 106, 124, 137, 122, 97, 93, 88, 99, 95, 88, 112, 122, 122, 99, 83, 97, 109, 123, 134, 141, 147, 146, 136, 127, 138, 145, 144, 153, 164, 166, 153, 142, 149, 157, 152, 135, 126, 141, 144, 129, 109, 112, 129, 119, 106, 110, 116, 109, 94, 95, 93, 100, 111, 109, 118, 123, 120, 117, 122, 126, 127, 136, 141, 149, 152, 146, 146, 142, 147, 151, 142, 143, 145, 143, 137, 129, 132, 134, 127, 125, 122, 119, 118, 117, 114, 113, 112, 114, 118, 115, 118, 121, 118, 120, 116, 118, 125, 122, 123, 134, 138, 133, 133, 136, 141, 139, 133, 131, 132, 132, 128, 128, 129, 130, 133, 132, 131, 128, 126, 127, 133, 139, 131, 129, 130, 126, 122, 120, 125, 123, 124, 120, 118, 125, 128, 128, 120, 120, 128, 126, 123, 124, 126, 128, 128, 124, 125, 130, 131, 130, 130, 131, 129, 123, 122, 127, 130, 130, 133, 134, 137, 134, 130, 132, 130, 130, 122, 121, 130, 132, 133, 129, 126, 121, 125, 129, 126, 132, 131, 129, 124, 121, 126, 123, 124, 125, 126, 125, 122, 124, 125, 129, 129, 128, 128, 128, 129, 127, 128, 132, 134, 134, 130, 126, 127, 126, 124, 124, 125, 127, 127, 128, 128, 126, 126, 129, 128, 125, 127, 132, 131, 128, 126, 125, 129, 130, 130, 130, 129, 127, 124, 124, 125, 125, 126, 128, 128, 127, 126, 125, 124, 126, 126, 128, 132, 135, 134, 128, 125, 124, 123, 124, 126, 127, 127, 128, 129, 131, 132, 132, 130, 130, 128, 126, 127, 129, 128, 126, 125, 125, 127, 130, 131, 131, 128, 126, 125, 124, 123, 126, 126, 123, 123, 126, 129, 131, 131, 130, 131, 131, 128, 128, 131, 131, 128, 126, 127, 130, 131, 129, 129, 130, 125, 121, 122, 125, 125, 124, 124, 124, 125, 125, 125, 127, 130, 132, 129, 126, 128, 129, 127, 128, 130, 128, 126, 125, 125, 127, 130, 132, 134, 136, 131, 125, 126, 128, 123, 122, 127, 129, 126, 126, 130, 130, 125, 125, 132, 133, 128, 128, 131, 129, 123, 123, 127, 129, 127, 128, 127, 124, 126, 131, 129, 127, 129, 127, 121, 122, 125, 123, 125, 129, 129, 129, 129, 128, 127, 127, 123, 122, 126, 128, 129, 130, 131, 131, 130, 131, 133, 131, 130, 132, 133, 130, 128, 126, 122, 121, 124, 127, 130, 132, 132, 130, 124, 118, 119, 122, 122, 123, 125, 126, 125, 123, 125, 128, 128, 125, 131, 136, 132, 130, 137, 139, 134, 135, 137, 132, 125, 121, 119, 116, 114, 121, 130, 130, 126, 130, 132, 126, 122, 124, 125, 124, 125, 129, 130, 129, 130, 131, 131, 133, 133, 130, 135, 138, 130, 126, 131, 128, 121, 123, 126, 123, 126, 128, 124, 122, 121, 119, 121, 125, 121, 120, 128, 130, 127, 129, 136, 137, 132, 131, 133, 131, 128, 129, 129, 125, 122, 122, 125, 128, 128, 130, 135, 135, 132, 133, 130, 124, 128, 131, 125, 127, 133, 126, 119, 122, 123, 122, 128, 132, 127, 121, 115, 112, 112, 113, 120, 130, 136, 138, 141, 140, 139, 140, 140, 138, 138, 133, 126, 120, 115, 112, 115, 121, 127, 132, 131, 129, 130, 128, 125, 127, 131, 131, 130, 129, 128, 128, 125, 127, 131, 128, 126, 130, 125, 115, 117, 118, 114, 122, 131, 128, 130, 138, 135, 129, 133, 136, 135, 134, 134, 134, 131, 123, 119, 117, 113, 112, 120, 128, 129, 130, 134, 137, 133, 132, 138, 137, 130, 132, 131, 119, 116, 120, 118, 122, 129, 128, 131, 138, 130, 121, 127, 126, 118, 124, 130, 126, 126, 130, 128, 125, 126, 125, 124, 126, 125, 121, 121, 124, 121, 116, 123, 136, 138, 145, 163, 170, 160, 155, 152, 138, 119, 110, 113, 116, 107, 107, 118, 115, 100, 105, 114, 107, 104, 112, 112, 107, 107, 110, 117, 120, 119, 125, 133, 135, 142, 159, 176, 191, 204, 211, 209, 194, 166, 140, 117, 91, 75, 73, 74, 77, 86, 93, 100, 108, 113, 118, 123, 125, 126, 125, 122, 119, 114, 107, 110, 116, 118, 126, 136, 133, 128, 125, 111, 106, 120, 129, 144, 185, 216, 221, 231, 241, 215, 176, 154, 132, 94, 63, 55, 53, 43, 46, 73, 95, 102, 117, 136, 137, 124, 119, 122, 114, 101, 105, 118, 114, 113, 130, 137, 132, 137, 140, 132, 128, 122, 111, 117, 128, 132, 157, 196, 212, 222, 243, 240, 205, 177, 156, 115, 73, 58, 53, 37, 33, 56, 74, 78, 101, 130, 134, 131, 137, 131, 112, 102, 102, 102, 105, 115, 130, 138, 140, 147, 151, 144, 142, 139, 121, 110, 111, 105, 109, 143, 176, 196, 225, 249, 239, 212, 190, 162, 120, 84, 71, 60, 40, 39, 61, 70, 77, 108, 134, 133, 136, 144, 129, 107, 105, 104, 94, 97, 114, 121, 119, 132, 146, 139, 135, 146, 142, 125, 124, 125, 114, 115, 129, 143, 165, 191, 208, 224, 231, 214, 191, 169, 136, 102, 82, 67, 58, 57, 57, 66, 82, 92, 103, 126, 142, 139, 137, 138, 124, 102, 95, 98, 94, 94, 109, 120, 119, 126, 133, 128, 130, 136, 128, 125, 137, 135, 130, 148, 167, 172, 188, 211, 222, 219, 212, 202, 182, 145, 109, 90, 69, 43, 41, 57, 64, 71, 94, 117, 125, 128, 137, 140, 126, 111, 105, 94, 82, 84, 90, 95, 109, 121, 125, 136, 148, 148, 148, 155, 153, 143, 136, 138, 142, 146, 160, 188, 205, 206, 213, 213, 186, 159, 145, 121, 94, 81, 72, 60, 58, 62, 70, 84, 98, 110, 121, 125, 124, 122, 114, 106, 103, 98, 92, 95, 102, 107, 117, 133, 148, 155, 158, 163, 160, 148, 143, 142, 136, 138, 149, 152, 160, 178, 182, 181, 192, 188, 168, 159, 148, 118, 97, 90, 72, 58, 62, 68, 70, 81, 99, 109, 116, 124, 130, 127, 123, 122, 118, 111, 111, 113, 113, 116, 124, 132, 138, 141, 145, 152, 149, 143, 151, 153, 142, 143, 150, 142, 140, 152, 156, 156, 164, 166, 155, 147, 139, 125, 114, 108, 103, 98, 92, 90, 91, 92, 98, 108, 118, 125, 128, 124, 120, 116, 106, 103, 111, 113, 113, 122, 128, 123, 121, 128, 131, 129, 132, 143, 148, 144, 147, 155, 152, 145, 148, 150, 150, 153, 157, 162, 170, 165, 155, 154, 146, 123, 111, 111, 102, 88, 88, 93, 91, 86, 92, 104, 106, 102, 110, 118, 110, 104, 114, 119, 113, 115, 126, 129, 122, 126, 136, 135, 135, 148, 156, 154, 159, 162, 154, 152, 152, 145, 143, 150, 148, 149, 157, 154, 148, 150, 143, 129, 127, 124, 110, 102, 101, 94, 82, 81, 88, 88, 88, 99, 111, 109, 107, 116, 120, 114, 115, 123, 126, 122, 121, 129, 134, 131, 137, 153, 157, 154, 161, 163, 155, 151, 150, 147, 148, 148, 146, 150, 152, 147, 144, 147, 142, 134, 131, 130, 124, 113, 107, 104, 94, 80, 79, 84, 82, 86, 101, 111, 114, 117, 122, 122, 119, 119, 123, 123, 120, 123, 125, 124, 129, 139, 147, 155, 163, 165, 165, 161, 152, 150, 150, 143, 141, 147, 145, 139, 142, 145, 142, 141, 142, 138, 130, 122, 114, 105, 96, 92, 92, 89, 88, 95, 99, 98, 103, 111, 112, 112, 115, 117, 115, 115, 118, 121, 123, 131, 140, 142, 146, 156, 156, 151, 154, 157, 151, 148, 150, 148, 145, 144, 141, 142, 145, 144, 144, 148, 146, 139, 134, 128, 119, 111, 107, 104, 100, 97, 97, 96, 93, 95, 101, 103, 104, 108, 112, 112, 112, 114, 119, 123, 124, 129, 137, 140, 141, 146, 149, 151, 154, 154, 151, 151, 148, 143, 140, 141, 142, 141, 140, 144, 146, 143, 141, 143, 139, 132, 130, 125, 116, 111, 109, 103, 99, 101, 101, 100, 102, 105, 106, 107, 107, 108, 109, 111, 113, 117, 123, 129, 131, 133, 137, 139, 138, 138, 142, 146, 147, 147, 150, 150, 146, 144, 145, 142, 139, 141, 143, 139, 140, 144, 141, 137, 140, 139, 130, 125, 123, 115, 107, 103, 99, 95, 95, 96, 95, 98, 103, 105, 109, 116, 120, 122, 126, 129, 128, 127, 128, 128, 129, 132, 136, 141, 146, 149, 152, 155, 155, 152, 152, 151, 146, 141, 141, 138, 133, 133, 135, 133, 132, 134, 133, 129, 125, 121, 115, 109, 105, 100, 96, 94, 93, 93, 97, 101, 106, 113, 122, 126, 129, 132, 133, 130, 130, 130, 129, 131, 135, 137, 140, 145, 148, 149, 151, 154, 154, 153, 151, 150, 147, 142, 138, 136, 134, 131, 129, 127, 123, 121, 120, 114, 110, 110, 108, 101, 101, 104, 103, 101, 106, 109, 111, 115, 117, 119, 125, 127, 126, 132, 138, 134, 136, 144, 141, 136, 145, 149, 140, 140, 150, 146, 135, 138, 146, 141, 132, 137, 144, 136, 124, 127, 131, 119, 110, 119, 120, 108, 111, 119, 112, 108, 119, 120, 111, 118, 127, 120, 117, 126, 126, 121, 125, 128, 126, 127, 129, 126, 128, 133, 133, 134, 138, 140, 141, 141, 139, 137, 140, 140, 134, 134, 140, 138, 129, 128, 134, 130, 120, 123, 129, 123, 117, 120, 119, 114, 116, 118, 114, 119, 126, 123, 122, 129, 130, 127, 128, 127, 127, 128, 122, 118, 125, 125, 120, 130, 139, 132, 137, 148, 134, 127, 144, 139, 118, 130, 145, 125, 117, 135, 131, 117, 124, 128, 120, 125, 126, 116, 120, 129, 120, 118, 131, 131, 124, 129, 131, 124, 125, 130, 127, 125, 130, 136, 132, 125, 133, 141, 127, 119, 135, 134, 112, 121, 137, 121, 118, 143, 136, 118, 138, 145, 119, 122, 144, 131, 117, 131, 131, 121, 124, 121, 120, 133, 129, 115, 127, 133, 109, 108, 127, 118, 112, 133, 136, 123, 135, 142, 124, 125, 139, 130, 122, 130, 128, 123, 129, 131, 132, 146, 152, 143, 143, 148, 137, 120, 123, 131, 116, 108, 129, 130, 98, 114, 155, 122, 91, 155, 165, 71, 77, 162, 104, 28, 129, 190, 88, 89, 202, 158, 60, 132, 190, 106, 99, 195, 180, 107, 143, 181, 122, 97, 145, 145, 105, 121, 144, 119, 110, 137, 133, 118, 144, 150, 117, 119, 138, 110, 94, 124, 122, 98, 119, 128, 99, 114, 145, 123, 122, 167, 153, 110, 125, 129, 84, 83, 115, 112, 119, 153, 156, 156, 174, 159, 143, 164, 149, 110, 128, 138, 85, 81, 131, 114, 85, 138, 170, 131, 130, 167, 152, 120, 131, 141, 123, 111, 116, 113, 100, 98, 107, 109, 109, 128, 141, 132, 136, 154, 139, 123, 139, 137, 113, 122, 136, 116, 116, 140, 129, 120, 146, 147, 126, 143, 154, 128, 127, 146, 125, 104, 124, 124, 98, 104, 127, 122, 113, 128, 143, 137, 126, 130, 137, 125, 107, 117, 128, 115, 112, 134, 139, 127, 135, 146, 137, 131, 138, 141, 137, 138, 142, 143, 137, 129, 129, 126, 116, 113, 117, 114, 113, 117, 116, 117, 125, 122, 119, 130, 131, 118, 121, 128, 116, 110, 119, 119, 114, 121, 127, 129, 133, 131, 135, 147, 140, 129, 151, 157, 128, 136, 173, 157, 133, 173, 193, 149, 138, 168, 141, 90, 96, 111, 84, 69, 95, 111, 97, 92, 111, 119, 101, 96, 117, 117, 95, 97, 113, 102, 91, 111, 126, 125, 136, 153, 153, 152, 157, 157, 159, 170, 180, 187, 197, 202, 201, 198, 186, 172, 162, 139, 107, 90, 77, 47, 35, 53, 61, 60, 83, 110, 110, 108, 117, 118, 109, 102, 99, 100, 97, 86, 89, 111, 120, 121, 150, 177, 166, 160, 176, 168, 149, 163, 185, 189, 205, 225, 219, 209, 202, 171, 137, 125, 102, 66, 57, 58, 43, 39, 60, 77, 88, 110, 126, 132, 136, 124, 108, 103, 92, 72, 68, 83, 86, 86, 110, 137, 147, 151, 161, 172, 162, 147, 154, 170, 175, 185, 217, 242, 238, 228, 222, 196, 155, 118, 89, 67, 46, 27, 27, 45, 51, 54, 84, 119, 125, 124, 142, 153, 127, 99, 106, 105, 72, 64, 98, 113, 96, 119, 168, 158, 139, 168, 176, 148, 149, 176, 179, 178, 205, 219, 213, 214, 204, 180, 153, 127, 94, 66, 48, 35, 34, 37, 50, 76, 91, 102, 122, 137, 127, 122, 132, 119, 98, 105, 103, 88, 95, 107, 109, 123, 142, 146, 151, 169, 163, 154, 180, 182, 175, 208, 221, 211, 219, 225, 195, 164, 161, 121, 71, 65, 47, 10, 12, 36, 37, 51, 89, 110, 122, 132, 142, 144, 131, 128, 121, 116, 105, 94, 104, 101, 99, 121, 136, 141, 159, 175, 164, 165, 179, 166, 158, 181, 191, 173, 184, 206, 178, 156, 166, 150, 108, 98, 99, 69, 50, 55, 62, 60, 64, 94, 113, 115, 128, 147, 151, 131, 133, 138, 111, 98, 99, 99, 92, 93, 114, 125, 127, 134, 146, 155, 143, 143, 166, 163, 151, 170, 180, 170, 165, 171, 178, 158, 150, 159, 142, 123, 111, 108, 99, 78, 87, 94, 89, 94, 107, 115, 106, 117, 125, 109, 111, 114, 106, 93, 100, 114, 95, 105, 132, 123, 126, 143, 150, 150, 152, 159, 162, 163, 156, 151, 160, 158, 139, 149, 170, 151, 140, 161, 156, 132, 123, 127, 120, 94, 89, 102, 94, 78, 87, 106, 98, 93, 109, 117, 107, 105, 116, 115, 110, 118, 121, 128, 136, 138, 145, 155, 161, 155, 156, 163, 155, 141, 144, 151, 134, 132, 150, 138, 135, 141, 137, 132, 123, 129, 124, 111, 121, 118, 112, 112, 114, 120, 109, 109, 122, 113, 102, 109, 114, 102, 100, 109, 114, 116, 111, 128, 144, 132, 133, 152, 151, 132, 140, 155, 139, 134, 149, 146, 136, 141, 141, 133, 143, 140, 130, 145, 140, 127, 131, 131, 126, 119, 124, 128, 122, 123, 122, 115, 116, 114, 100, 108, 121, 100, 105, 124, 116, 106, 113, 136, 118, 112, 148, 132, 124, 142, 137, 132, 132, 139, 132, 134, 144, 135, 143, 143, 141, 143, 131, 138, 132, 126, 128, 127, 137, 120, 124, 140, 115, 116, 129, 120, 119, 125, 128, 127, 123, 125, 124, 118, 124, 120, 121, 132, 121, 126, 130, 127, 127, 121, 136, 127, 119, 136, 126, 120, 123, 129, 125, 118, 135, 131, 126, 135, 133, 133, 132, 133, 133, 133, 129, 127, 136, 125, 126, 137, 129, 126, 131, 131, 119, 123, 126, 116, 121, 120, 125, 120, 120, 131, 122, 128, 125, 131, 137, 115, 136, 141, 119, 130, 143, 133, 121, 137, 136, 121, 123, 132, 138, 117, 134, 147, 121, 134, 133, 128, 127, 115, 134, 119, 112, 130, 114, 121, 126, 117, 135, 134, 120, 134, 134, 115, 112, 121, 118, 99, 119, 137, 113, 129, 147, 137, 135, 141, 149, 134, 133, 145, 134, 128, 133, 138, 122, 126, 137, 120, 125, 127, 127, 120, 117, 136, 115, 122, 140, 118, 137, 133, 123, 138, 122, 120, 126, 120, 118, 120, 126, 125, 120, 130, 134, 117, 130, 138, 119, 129, 135, 125, 125, 123, 131, 122, 116, 132, 132, 119, 127, 143, 126, 125, 143, 131, 133, 134, 131, 142, 120, 125, 136, 112, 124, 122, 126, 135, 113, 147, 141, 113, 150, 132, 120, 133, 122, 129, 118, 123, 130, 117, 126, 123, 125, 129, 125, 127, 133, 130, 121, 135, 127, 121, 132, 119, 133, 120, 116, 137, 109, 118, 126, 115, 126, 121, 136, 132, 127, 148, 129, 130, 143, 125, 127, 136, 126, 124, 134, 129, 122, 129,
};
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
const int inputPin = 3; // choose the input pin (for PIR sensor)
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
int pirState = LOW; // we start, assuming no motion detected
int val; // variable for reading the pin status
void setup() {
Serial.begin(9600);
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
val = digitalRead(inputPin); // read input value
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
startPlayback(sample, sizeof(sample));
} else if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
startPlayback(sample, sizeof(sample));
// We only want to print on the output change, not state
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
if (pirState == HIGH){
// we have just turned of
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;
}
}
}
Final Video:
Final PDF:
Subscribe to:
Posts (Atom)