 
				 
				In May 2023, I participated in the 404 CTF Hackathon where I embarked on a project to crack a code using the power of artificial intelligence. Armed with a folder containing handwritten digit images, I used an AI model capable of detecting and classifying these digits. By training the model on a carefully curated dataset and leveraging techniques like Convolutional Neural Networks, I successfully deciphered the hidden code in the images. This project highlights the potential of AI in code decryption and pattern recognition tasks.

import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
import numpy as np
mnist = tf.keras.datasets.mnist  
(x_train, y_train),(x_test, y_test) = mnist.load_data()  
x_train = tf.keras.utils.normalize(x_train, axis=1)  
x_test = tf.keras.utils.normalize(x_test, axis=1) 
model = tf.keras.models.Sequential()  
model.add(tf.keras.layers.Flatten())  
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))  
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))  
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))  
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])  
model.fit(x_train, y_train, epochs=10)  
val_loss, val_acc = model.evaluate(x_test, y_test)  
print("\nloss =", val_loss)  
print("precision =", val_acc)  
y_predicted = model.predict(x_test)
np.argmax(y_predicted[0])
y_predicted_labels = [np.argmax(i) for i in y_predicted]
y_predicted_labels[:1]
Epoch 1/10 1875/1875 [==============================] - 5s 2ms/step - loss: 0.2636 - accuracy: 0.9231 Epoch 2/10 1875/1875 [==============================] - 3s 2ms/step - loss: 0.1058 - accuracy: 0.9672 Epoch 3/10 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0716 - accuracy: 0.9773 Epoch 4/10 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0525 - accuracy: 0.9829 Epoch 5/10 1875/1875 [==============================] - 3s 2ms/step - loss: 0.0394 - accuracy: 0.9866 Epoch 6/10 1875/1875 [==============================] - 4s 2ms/step - loss: 0.0315 - accuracy: 0.9892 Epoch 7/10 1875/1875 [==============================] - 4s 2ms/step - loss: 0.0245 - accuracy: 0.9920 Epoch 8/10 1875/1875 [==============================] - 4s 2ms/step - loss: 0.0198 - accuracy: 0.9934 Epoch 9/10 1875/1875 [==============================] - 4s 2ms/step - loss: 0.0162 - accuracy: 0.9944 Epoch 10/10 1875/1875 [==============================] - 4s 2ms/step - loss: 0.0158 - accuracy: 0.9946 313/313 [==============================] - 1s 2ms/step - loss: 0.1257 - accuracy: 0.9727 loss = 0.12572124600410461 precision = 0.9726999998092651 313/313 [==============================] - 1s 2ms/step
import os
from PIL import Image
# Preparation of the folder containing the images
image_folder = 'C:\Users\theog\404-ctf\poeme\images'
image_files = [f for f in os.listdir(image_folder) if os.path.isfile(os.path.join(image_folder, f))]
# Initialize the list to store the images
images = []
for image_file in image_files:
    # Open each image, convert it to grayscale, and resize it to 28x28 pixels
    image = Image.open(os.path.join(image_folder, image_file)).convert('L').resize((28, 28))
    
    # Convert the image to a numpy array and normalize it (similar to what we did for the training data)
    image = tf.keras.utils.normalize(np.array(image), axis=1)
    
    # Add the image to our list
    images.append(image)
# Convert the list of images into a numpy array
images = np.array(images)
# Predict the classes for each image
predictions = model.predict(images)
# Retrieve the index of the predicted class for each image
predicted_labels = [np.argmax(p) for p in predictions]
print(predicted_labels)
205/205 [==============================] - 0s 1ms/step [6, 6, 9, 1, 0, 1, 1, 6, 3, 1, 3, 0, 8, 1, 6, 6, 3, 0, 3, 0, 3, 8, 5, 5, 5, 2, 6, 1, 0, 6, 8, 9, 7, 6, 9, 9, 2, 1, 3, 8, 9, 1, 6, 7, 5, 3, 6, 2, 6, 3, 5, 3, 8, 2, 3, 1, 0, 6, 4, 7, 0, 0, 6, 2, 6, 9, 7, 1, 9, 9, 6, 2, 0, 1, 6, 5, 1, 0, 3, 6, 8, 3, 7, 8, 3, 9, 8, 6, 5, 8, 8, 5, 6, 1, 7, 5, 2, 2, 0, 0, 6, 6, 1, 0, 2, 0, 6, 6, 6, 0, 6, 1, 0, 1, 9, 1, 9, 0, 5, 2, 3, 9, 2, 2, 6, 5, 0, 0, 8, 7, 6, 2, 9, 1, 8, 6, 6, 6, 3, 9, 6, 6, 2, 6, 5, 6, 5, 1, 7, 8, 0, 5, 2, 6, 0, 9, 9, 0, 7, 5, 6, 0, 0, 0, 5, 1, 6, 0, 1, 6, 6, 1, 2, 5, 1, 3, 8, 6, 3, 9, 6, 6, 0, 3, 8, 5, 3, 8, 2, 6, 8, 1, 7, 8, 8, 0, 5, 6, 6, 1, 6, 9, 0, 8, 0, 2, 6, 6, 3, 3, 3, 8, 1, 9, 1, 8, 1, 3, 5, 2, 0, 3, 3, 0, 2, 6, 8, 1, 5, 2, 8, 8, 1, 1, 5, 1, 0, 7, 0, 9, 9, 0, 0, 0, 3, 0, 1, 3, 4, 6, 5, 1, 0, 2, 7, 2, 5, 9, 6, 2, 0, 2, 0, 3, 8, 0, 6, 2, 6, 0, 0, 3, 1, 5, 6, 5, 3, 0, 8, 7, 6, 1, 8, 5, 9, 5, 3, 0, 7, 1, 9, 0, 1, 8, 8, 1, 6, 0, 1, 2, 6, 6, 0, 8, 3, 0, 3, 0, 6, 6, 1, 5, 0, 0, 0, 5, 1, 0, 0, 3, 6, 3, 6, 3, 3, 1, 6, 6, 4, 5, 3, 6, 2, 3, 1, 1, 1, 7, 7, 6, 0, 8, 2, 6, 6, 8, 0, 7, 0, 0, 6, 5, 7, 0, 0, 6, 0, 3, 6, 8, 7, 3, 8, 6, 0, 3, 5, 6, 3, 6, 3, 7, 6, 8, 1, 9, 6, 9, 1, 0, 4, 1, 0, 6, 3, 2, 7, 1, 0, 0, 6, 8, 2, 7, 0, 3, 3, 0, 2, 5, 6, 7, 8, 6, 1, 5, 0, 9, 5, 5, 0, 0, 1, 9, 0, 7, 6, 3, 6, 0, 6, 9, 3, 9, 3, 6, 9, 8, 7, 2, 6, 2, 6, 5, 0, 6, 3, 0, 0, 9, 2, 0, 6, 2, 0, 1, 0, 6, 0, 1, 7, 3, 0, 5, 6, 3, 0, 6, 8, 5, 2, 6, 0, 8, 0, 8, 1, 5, 0, 0, 7, 5, 8, 3, 6, 5, 3, 8, 5, 3, 6, 7, 0, 2, 6, 5, 2, 5, 8, 8, 5, 6, 8, 1, 5, 2, 0, 5, 1, 0, 8, 3, 8, 9, 9, 4, 6, 5, 5, 2, 2, 1, 2, 6, 6, 2, 1, 9, 8, 2, 1, 1, 0, 2, 7, 0, 3, 0, 0, 1, 8, 3, 1, 1, 1, 6, 2, 6, 5, 3, 9, 1, 8, 6, 0, 6, 9, 3, 2, 0, 8, 8, 6, 6, 1, 9, 0, 6, 1, 6, 3, 6, 6, 8, 3, 1, 1, 0, 5, 5, 6, 5, 8, 9, 1, 1, 6, 6, 2, 0, 6, 6, 3, 3, 6, 5, 5, 9, 6, 6, 5, 0, 1, 6, 2, 0, 6, 3, 0, 0, 5, 0, 1, 8, 8, 6, 2, 9, 3, 3, 5, 6, 3, 6, 7, 6, 0, 7, 3, 6, 3, 6, 2, 3, 8, 2, 9, 1, 0, 9, 0, 0, 3, 8, 8, 2, 5, 0, 6, 7, 3, 6, 0, 6, 7, 6, 0, 7, 0, 5, 6, 6, 3, 8, 8, 0, 0, 2, 3, 6, 2, 0, 1, 2, 0, 9, 1, 5, 2, 6, 8, 5, 3, 9, 6, 6, 2, 5, 6, 5, 1, 1, 5, 0, 6, 9, 3, 8, 9, 7, 5, 1, 2, 7, 6, 0, 1, 2, 0, 8, 0, 4, 6, 0, 6, 6, 5, 2, 4, 6, 5, 6, 3, 1, 2, 1, 7, 6, 0, 9, 1, 4, 0, 0, 0, 1, 6, 6, 0, 5, 1, 6, 5, 7, 6, 6, 7, 1, 6, 9, 6, 6, 7, 3, 0, 6, 8, 5, 8, 8, 5, 1, 1, 2, 4, 0, 9, 8, 0, 8, 3, 9, 0, 6, 2, 0, 6, 6, 3, 1, 1, 0, 8, 3, 0, 0, 6, 1, 2, 8, 5, 0, 2, 6, 6, 6, 7, 7, 0, 8, 3, 8, 7, 2, 6, 8, 7, 6, 6, 1, 3, 3, 2, 0, 9, 7, 0, 7, 2, 8, 7, 1, 1, 5, 3, 3, 6, 6, 5, 3, 0, 2, 9, 0, 8, 2, 2, 0, 2, 0, 2, 3, 8, 2, 6, 1, 8, 9, 2, 8, 1, 3, 0, 8, 1, 6, 9, 8, 2, 1, 9, 4, 8, 2, 6, 2, 3, 5, 1, 6, 0, 8, 8, 3, 6, 5, 1, 6, 6, 9, 3, 1, 0, 6, 7, 3, 0, 0, 0, 1, 7, 5, 8, 0, 7, 6, 3, 3, 7, 6, 7, 2, 8, 6, 6, 6, 6, 6, 0, 2, 2, 2, 7, 0, 2, 1, 2, 3, 8, 6, 1, 6, 1, 0, 2, 6, 8, 2, 8, 9, 3, 8, 2, 0, 0, 8, 9, 7, 1, 9, 1, 0, 0, 2, 8, 2, 8, 6, 1, 6, 2, 0, 6, 0, 6, 7, 3, 3, 9, 1, 6, 7, 2, 6, 1, 7, 6, 3, 9, 7, 1, 1, 9, 9, 1, 3, 2, 3, 1, 0, 7, 8, 5, 5, 1, 0, 6, 9, 0, 8, 2, 8, 9, 1, 2, 0, 6, 6, 2, 6, 3, 3, 5, 0, 2, 7, 0, 6, 2, 1, 6, 1, 7, 8, 6, 6, 6, 2, 3, 5, 8, 1, 6, 0, 8, 0, 6, 3, 7, 6, 6, 7, 0, 7, 0, 8, 5, 1, 9, 0, 1, 8, 4, 0, 3, 3, 5, 0, 6, 6, 0, 8, 0, 1, 1, 1, 3, 6, 1, 6, 3, 2, 7, 7, 5, 2, 6, 1, 7, 5, 0, 2, 9, 6, 2, 6, 0, 1, 6, 6, 9, 6, 8, 6, 5, 6, 6, 2, 8, 6, 0, 2, 0, 1, 1, 1, 7, 1, 7, 6, 1, 3, 6, 8, 9, 8, 5, 5, 1, 2, 5, 2, 1, 0, 6, 3, 1, 1, 0, 7, 6, 3, 8, 9, 2, 8, 3, 3, 2, 6, 9, 6, 0, 6, 3, 5, 5, 8, 6, 7, 4, 3, 6, 0, 9, 1, 3, 2, 2, 0, 1, 8, 6, 6, 2, 5, 0, 0, 5, 0, 6, 3, 8, 1, 0, 9, 3, 1, 6, 0, 0, 1, 3, 0, 1, 0, 1, 2, 0, 7, 6, 0, 0, 0, 2, 0, 8, 1, 3, 8, 0, 0, 0, 6, 2, 0, 9, 5, 2, 6, 8, 5, 4, 5, 8, 0, 5, 2, 2, 0, 0, 8, 0, 6, 1, 1, 9, 8, 3, 8, 8, 9, 5, 6, 3, 3, 2, 0, 5, 0, 6, 1, 1, 6, 6, 8, 9, 0, 6, 1, 6, 3, 9, 9, 8, 1, 1, 0, 2, 0, 3, 1, 9, 8, 8, 2, 8, 1, 0, 3, 7, 1, 0, 1, 0, 5, 6, 9, 2, 0, 1, 1, 0, 2, 6, 6, 2, 1, 6, 3, 6, 9, 0, 6, 6, 8, 5, 0, 3, 5, 0, 6, 9, 6, 8, 3, 0, 8, 0, 1, 0, 6, 0, 9, 0, 0, 2, 5, 3, 4, 2, 5, 6, 1, 6, 6, 3, 5, 1, 0, 1, 1, 8, 6, 1, 1, 0, 6, 7, 5, 3, 3, 8, 2, 6, 6, 8, 6, 2, 3, 0, 8, 2, 6, 7, 9, 5, 8, 6, 1, 1, 9, 0, 6, 0, 6, 8, 8, 1, 8, 6, 8, 6, 6, 4, 9, 3, 0, 3, 0, 0, 0, 1, 6, 5, 1, 2, 1, 3, 6, 9, 8, 8, 3, 9, 5, 8, 0, 5, 5, 0, 0, 6, 1, 9, 1, 3, 6, 8, 8, 0, 7, 9, 6, 3, 6, 0, 6, 6, 0, 9, 6, 0, 3, 1, 7, 0, 0, 1, 5, 6, 3, 1, 9, 1, 9, 2, 5, 9, 8, 0, 6, 6, 5, 1, 0, 1, 9, 1, 6, 4, 5, 6, 6, 1, 8, 9, 3, 2, 9, 3, 3, 0, 8, 0, 0, 0, 8, 6, 6, 8, 6, 0, 9, 1, 7, 6, 0, 6, 3, 1, 6, 5, 7, 6, 1, 6, 9, 6, 5, 2, 3, 1, 2, 8, 0, 0, 1, 0, 6, 3, 9, 6, 6, 5, 0, 7, 0, 3, 5, 9, 5, 1, 8, 3, 6, 8, 5, 3, 2, 3, 8, 6, 2, 9, 9, 5, 9, 2, 1, 5, 1, 8, 0, 1, 9, 1, 7, 8, 0, 1, 1, 0, 6, 1, 9, 1, 9, 9, 8, 6, 6, 6, 1, 6, 5, 0, 6, 6, 6, 2, 3, 7, 8, 5, 6, 6, 2, 3, 9, 1, 1, 0, 1, 9, 0, 6, 0, 7, 2, 9, 5, 1, 8, 8, 6, 8, 6, 1, 6, 3, 1, 8, 1, 0, 1, 6, 5, 3, 0, 6, 7, 2, 6, 5, 5, 1, 5, 6, 5, 6, 0, 0, 3, 1, 1, 7, 1, 0, 5, 8, 6, 0, 0, 1, 6, 5, 0, 3, 6, 3, 2, 1, 8, 1, 0, 2, 7, 6, 7, 6, 7, 7, 2, 2, 2, 3, 8, 1, 0, 1, 2, 9, 0, 6, 6, 7, 1, 8, 6, 1, 0, 1, 6, 1, 0, 9, 6, 3, 6, 5, 6, 2, 6, 0, 8, 9, 8, 3, 2, 3, 5, 1, 0, 0, 5, 5, 3, 1, 7, 9, 1, 2, 5, 0, 0, 9, 5, 6, 6, 3, 1, 8, 0, 2, 5, 2, 7, 8, 6, 0, 3, 0, 1, 1, 6, 9, 1, 6, 1, 0, 5, 8, 5, 6, 0, 1, 0, 7, 0, 0, 0, 6, 0, 0, 6, 6, 6, 8, 9, 1, 4, 0, 2, 1, 2, 0, 6, 7, 3, 4, 3, 9, 5, 1, 6, 6, 5, 7, 3, 0, 5, 9, 3, 8, 1, 1, 3, 2, 8, 0, 8, 2, 6, 0, 9, 6, 1, 7, 5, 6, 8, 0, 0, 5, 2, 2, 1, 0, 0, 3, 8, 6, 6, 6, 8, 0, 3, 8, 9, 6, 0, 3, 7, 9, 6, 5, 5, 0, 0, 6, 2, 5, 0, 5, 3, 1, 7, 9, 9, 3, 6, 0, 1, 3, 3, 0, 8, 1, 7, 1, 6, 0, 2, 6, 2, 0, 8, 6, 6, 0, 2, 2, 8, 6, 0, 8, 3, 3, 9, 0, 8, 6, 8, 0, 1, 1, 7, 0, 0, 3, 6, 8, 6, 9, 2, 1, 6, 8, 0, 2, 8, 5, 9, 6, 0, 6, 8, 6, 1, 2, 1, 5, 2, 5, 1, 8, 2, 5, 5, 1, 3, 3, 2, 6, 7, 3, 8, 2, 6, 5, 8, 9, 3, 1, 6, 0, 6, 8, 5, 6, 7, 0, 0, 2, 6, 2, 7, 7, 6, 7, 3, 7, 5, 3, 6, 5, 9, 7, 8, 9, 0, 1, 8, 0, 5, 3, 5, 9, 8, 7, 6, 0, 8, 7, 5, 2, 0, 6, 8, 0, 0, 7, 3, 2, 3, 2, 6, 6, 9, 6, 9, 0, 2, 0, 1, 2, 7, 0, 2, 3, 1, 0, 8, 5, 5, 6, 3, 6, 1, 5, 2, 2, 6, 0, 5, 6, 3, 3, 5, 2, 6, 2, 4, 3, 8, 7, 1, 7, 8, 1, 8, 5, 2, 8, 0, 5, 8, 8, 1, 3, 6, 1, 8, 3, 7, 1, 0, 8, 7, 5, 6, 2, 2, 2, 5, 6, 6, 9, 6, 2, 8, 6, 1, 1, 3, 0, 2, 0, 9, 0, 9, 1, 7, 5, 6, 3, 0, 1, 8, 6, 1, 6, 2, 9, 8, 5, 3, 6, 3, 3, 6, 6, 1, 9, 9, 9, 8, 7, 0, 1, 5, 9, 5, 6, 2, 2, 1, 7, 0, 0, 0, 0, 8, 6, 5, 0, 1, 0, 6, 0, 6, 6, 2, 5, 9, 1, 6, 6, 9, 6, 0, 8, 3, 9, 0, 5, 9, 6, 0, 2, 0, 1, 3, 2, 6, 4, 5, 6, 6, 7, 3, 3, 6, 2, 3, 0, 3, 6, 5, 1, 3, 5, 6, 8, 7, 0, 6, 8, 5, 1, 5, 8, 0, 6, 0, 6, 6, 9, 1, 8, 9, 3, 8, 1, 6, 0, 9, 0, 2, 9, 6, 0, 8, 0, 6, 9, 1, 1, 8, 6, 8, 9, 0, 0, 1, 0, 8, 1, 3, 3, 3, 2, 6, 7, 3, 6, 7, 1, 1, 4, 0, 2, 5, 0, 0, 9, 4, 1, 6, 2, 1, 1, 9, 5, 9, 6, 0, 2, 1, 8, 3, 2, 0, 7, 8, 7, 6, 1, 1, 5, 3, 0, 5, 8, 3, 6, 9, 1, 3, 6, 0, 8, 9, 3, 8, 1, 7, 6, 4, 5, 3, 3, 0, 0, 9, 8, 0, 3, 8, 1, 3, 2, 6, 8, 8, 1, 1, 6, 8, 6, 6, 6, 6, 8, 3, 6, 6, 3, 3, 6, 1, 0, 0, 1, 6, 0, 0, 2, 6, 2, 0, 1, 6, 3, 6, 5, 8, 1, 8, 0, 5, 3, 0, 7, 1, 3, 2, 6, 5, 8, 1, 9, 6, 0, 7, 3, 0, 5, 3, 0, 7, 5, 1, 7, 9, 0, 5, 6, 8, 1, 2, 2, 1, 8, 2, 3, 5, 6, 0, 1, 6, 5, 6, 8, 8, 7, 6, 6, 0, 8, 8, 8, 6, 0, 3, 9, 1, 0, 3, 2, 2, 0, 1, 8, 0, 9, 8, 0, 6, 2, 6, 3, 1, 6, 6, 6, 8, 0, 9, 1, 9, 1, 6, 0, 9, 1, 4, 6, 6, 3, 5, 1, 2, 6, 7, 1, 8, 6, 0, 5, 2, 6, 1, 5, 2, 0, 0, 9, 0, 3, 1, 8, 7, 2, 6, 7, 1, 5, 9, 1, 2, 6, 8, 9, 9, 5, 8, 1, 1, 7, 0, 0, 8, 8, 3, 1, 0, 1, 0, 6, 2, 0, 5, 5, 6, 6, 8, 6, 0, 4, 3, 1, 6, 2, 6, 7, 6, 0, 6, 6, 1, 0, 6, 5, 9, 3, 0, 0, 3, 3, 8, 5, 6, 2, 2, 8, 2, 0, 7, 5, 6, 0, 5, 6, 1, 1, 3, 5, 5, 9, 2, 7, 0, 1, 6, 9, 5, 5, 9, 6, 2, 5, 6, 6, 5, 7, 8, 2, 5, 2, 6, 9, 2, 5, 6, 9, 8, 8, 5, 7, 3, 0, 0, 1, 2, 0, 0, 2, 0, 2, 1, 1, 6, 6, 0, 3, 6, 0, 6, 1, 9, 8, 7, 8, 5, 8, 9, 0, 6, 7, 1, 2, 6, 0, 2, 8, 0, 1, 7, 9, 2, 6, 0, 0, 1, 0, 7, 3, 0, 9, 7, 5, 9, 6, 1, 3, 0, 6, 3, 6, 6, 9, 6, 3, 9, 8, 6, 7, 1, 1, 6, 8, 0, 1, 7, 0, 6, 3, 6, 6, 3, 2, 5, 1, 5, 2, 1, 2, 8, 6, 9, 0, 1, 1, 6, 3, 0, 0, 0, 3, 1, 3, 0, 6, 1, 6, 1, 9, 6, 8, 2, 7, 3, 4, 2, 8, 6, 5, 2, 0, 8, 6, 8, 3, 0, 0, 5, 3, 0, 2, 9, 8, 3, 6, 0, 5, 5, 9, 0, 0, 1, 8, 6, 1, 7, 1, 0, 6, 6, 7, 0, 8, 9, 0, 9, 0, 8, 5, 8, 5, 5, 0, 9, 0, 1, 2, 1, 4, 6, 0, 3, 1, 1, 8, 7, 2, 8, 7, 0, 8, 5, 1, 3, 0, 9, 9, 8, 6, 7, 1, 6, 2, 0, 8, 6, 8, 8, 3, 9, 0, 6, 0, 6, 3, 7, 0, 5, 3, 8, 0, 0, 6, 6, 3, 2, 7, 5, 2, 1, 1, 6, 2, 8, 0, 5, 7, 1, 6, 7, 9, 9, 6, 5, 0, 5, 0, 1, 5, 6, 7, 0, 1, 9, 1, 3, 2, 2, 1, 8, 6, 1, 5, 2, 2, 0, 0, 6, 7, 6, 8, 3, 6, 6, 0, 6, 6, 8, 6, 0, 5, 2, 6, 1, 6, 9, 6, 6, 1, 9, 6, 1, 2, 6, 2, 9, 2, 1, 1, 0, 8, 8, 1, 0, 1, 6, 8, 5, 0, 2, 6, 6, 6, 2, 6, 3, 7, 6, 8, 8, 6, 7, 6, 6, 7, 3, 6, 1, 5, 3, 8, 2, 0, 5, 5, 7, 8, 6, 1, 8, 8, 6, 6, 8, 7, 5, 1, 3, 6, 2, 0, 2, 0, 1, 6, 6, 7, 7, 0, 2, 9, 2, 3, 8, 5, 1, 3, 0, 1, 3, 6, 0, 0, 0, 2, 2, 6, 3, 7, 0, 6, 6, 6, 1, 8, 1, 8, 1, 0, 8, 8, 0, 8, 2, 6, 0, 6, 6, 0, 0, 6, 6, 6, 3, 1, 6, 5, 9, 1, 0, 0, 0, 6, 3, 1, 8, 1, 3, 7, 7, 6, 3, 7, 1, 9, 6, 3, 1, 3, 0, 3, 3, 9, 0, 6, 6, 7, 0, 2, 2, 1, 8, 6, 0, 3, 0, 0, 0, 3, 9, 0, 2, 0, 6, 0, 8, 6, 3, 1, 6, 5, 5, 5, 5, 6, 3, 6, 5, 9, 6, 3, 8, 8, 8, 1, 1, 1, 1, 0, 0, 3, 0, 8, 6, 1, 8, 6, 6, 3, 0, 6, 6, 3, 3, 8, 0, 5, 6, 7, 8, 2, 7, 2, 6, 0, 6, 6, 1, 6, 3, 6, 1, 6, 5, 6, 5, 8, 2, 3, 3, 0, 8, 1, 8, 9, 0, 7, 6, 5, 3, 8, 0, 5, 0, 0, 1, 6, 1, 0, 7, 0, 6, 1, 8, 3, 9, 8, 1, 6, 8, 6, 8, 0, 2, 3, 8, 1, 0, 0, 5, 2, 1, 2, 4, 1, 7, 8, 0, 7, 0, 8, 0, 6, 3, 8, 6, 8, 6, 0, 9, 6, 1, 1, 0, 6, 8, 3, 2, 9, 4, 8, 1, 6, 1, 1, 3, 1, 6, 3, 1, 8, 8, 3, 2, 0, 5, 2, 5, 5, 1, 1, 2, 8, 3, 6, 0, 1, 3, 0, 0, 7, 3, 8, 0, 6, 0, 8, 6, 8, 8, 0, 6, 6, 6, 8, 0, 5, 1, 6, 6, 1, 6, 2, 8, 7, 0, 8, 6, 9, 0, 6, 6, 3, 1, 8, 3, 2, 9, 5, 2, 2, 1, 5, 1, 3, 7, 0, 1, 0, 6, 3, 3, 0, 7, 1, 0, 2, 6, 6, 1, 9, 5, 0, 1, 8, 8, 6, 6, 1, 0, 0, 0, 2, 8, 6, 6, 5, 1, 0, 3, 8, 8, 1, 0, 9, 7, 5, 0, 1, 0, 2, 6, 5, 8, 1, 6, 2, 8, 5, 6, 9, 7, 0, 9, 5, 6, 1, 5, 3, 0, 6, 6, 6, 8, 6, 6, 6, 0, 8, 0, 0, 1, 9, 2, 6, 1, 8, 2, 0, 1, 0, 3, 0, 6, 0, 3, 6, 6, 0, 1, 9, 0, 6, 6, 0, 5, 8, 0, 7, 9, 6, 1, 0, 3, 6, 2, 7, 1, 7, 1, 2, 6, 9, 1, 8, 0, 9, 0, 8, 1, 5, 9, 1, 6, 6, 6, 0, 7, 6, 2, 9, 6, 6, 5, 6, 0, 8, 6, 3, 6, 8, 2, 5, 1, 8, 6, 6, 8, 1, 2, 3, 3, 5, 6, 5, 7, 8, 6, 2, 0, 5, 6, 0, 2, 0, 6, 3, 2, 6, 9, 1, 0, 6, 5, 6, 0, 0, 1, 1, 6, 0, 2, 8, 6, 6, 6, 6, 8, 1, 9, 6, 3, 5, 1, 1, 0, 0, 6, 5, 7, 6, 6, 1, 9, 2, 5, 1, 9, 0, 0, 3, 0, 6, 6, 1, 5, 2, 8, 5, 6, 0, 5, 2, 0, 5, 2, 2, 0, 8, 0, 8, 9, 1, 5, 0, 3, 7, 6, 9, 0, 3, 0, 1, 8, 0, 9, 0, 1, 8, 6, 3, 6, 0, 9, 9, 2, 6, 9, 9, 7, 8, 1, 3, 8, 8, 9, 9, 3, 1, 6, 5, 2, 2, 5, 8, 6, 1, 0, 8, 0, 5, 6, 1, 8, 9, 7, 3, 6, 6, 1, 5, 1, 2, 1, 0, 0, 1, 8, 3, 9, 8, 1, 8, 1, 9, 7, 8, 0, 6, 3, 6, 1, 3, 6, 6, 6, 1, 0, 3, 6, 6, 8, 0, 6, 3, 8, 3, 2, 2, 1, 7, 1, 6, 3, 8, 7, 6, 0, 5, 1, 1, 0, 8, 0, 0, 9, 8, 7, 3, 1, 0, 2, 7, 9, 3, 6, 3, 3, 1, 0, 6, 0, 0, 0, 6, 5, 3, 7, 1, 1, 7, 5, 6, 6, 1, 1, 6, 8, 1, 6, 1, 1, 3, 7, 6, 1, 6, 4, 1, 7, 0, 8, 7, 0, 2, 8, 0, 8, 8, 6, 6, 7, 0, 9, 0, 6, 1, 3, 1, 6, 9, 9, 6, 6, 5, 6, 5, 2, 2, 3, 0, 0, 0, 8, 6, 6, 0, 1, 7, 8, 9, 7, 0, 6, 3, 6, 5, 3, 0, 1, 0, 2, 7, 8, 2, 1, 5, 1, 6, 6, 3, 3, 6, 2, 2, 0, 6, 1, 3, 5, 8, 5, 1, 1, 6, 5, 6, 0, 9, 8, 6, 1, 3, 5, 5, 0, 3, 8, 5, 8, 1, 3, 9, 0, 0, 5, 5, 3, 8, 5, 0, 5, 8, 9, 2, 6, 2, 6, 0, 8, 0, 6, 5, 6, 1, 0, 6, 7, 9, 8, 2, 0, 8, 8, 0, 9, 6, 0, 9, 0, 8, 5, 6, 3, 6, 1, 6, 0, 3, 1, 9, 1, 6, 6, 9, 7, 2, 4, 0, 1, 5, 0, 8, 0, 0, 2, 5, 5, 0, 5, 0, 3, 3, 3, 1, 8, 6, 3, 6, 2, 7, 9, 0, 1, 8, 3, 2, 9, 8, 8, 1, 6, 6, 2, 2, 4, 6, 0, 1, 3, 5, 9, 0, 7, 3, 6, 6, 0, 9, 8, 6, 2, 8, 6, 0, 3, 9, 1, 6, 1, 2, 6, 8, 2, 1, 7, 6, 6, 0, 7, 5, 2, 6, 6, 1, 6, 8, 8, 7, 2, 8, 6, 5, 3, 7, 6, 6, 0, 2, 6, 3, 0, 1, 7, 0, 7, 1, 3, 3, 2, 1, 5, 3, 5, 0, 5, 6, 3, 0, 5, 9, 3, 0, 6, 6, 5, 8, 6, 0, 5, 6, 0, 6, 2, 8, 0, 2, 9, 7, 2, 6, 9, 5, 9, 8, 8, 7, 1, 0, 8, 6, 0, 1, 2, 9, 8, 9, 0, 5, 6, 2, 8, 6, 3, 6, 3, 5, 2, 1, 1, 2, 8, 7, 5, 6, 6, 6, 5, 8, 3, 6, 0, 2, 6, 3, 8, 5, 3, 5, 6, 1, 6, 0, 6, 2, 7, 1, 6, 3, 0, 8, 6, 0, 0, 3, 3, 0, 1, 0, 6, 0, 1, 2, 6, 6, 2, 6, 3, 1, 5, 6, 8, 6, 6, 1, 2, 1, 1, 1, 6, 5, 6, 1, 0, 6, 6, 9, 1, 8, 5, 8, 3, 6, 1, 0, 5, 6, 3, 7, 3, 1, 2, 3, 1, 8, 0, 3, 0, 2, 1, 6, 5, 7, 1, 6, 8, 2, 1, 1, 6, 5, 9, 0, 8, 1, 8, 1, 6, 6, 9, 7, 0, 0, 6, 8, 7, 0, 9, 0, 3, 7, 8, 1, 6, 5, 6, 9, 5, 7, 1, 3, 0, 7, 6, 6, 0, 3, 6, 2, 6, 1, 0, 6, 0, 3, 3, 2, 0, 5, 3, 6, 3, 2, 8, 3, 3, 2, 0, 5, 7, 9, 6, 7, 0, 1, 2, 9, 1, 3, 4, 4, 1, 3, 1, 7, 6, 9, 0, 8, 8, 0, 5, 2, 0, 6, 6, 8, 8, 8, 0, 9, 9, 8, 6, 0, 8, 6, 0, 3, 1, 1, 6, 5, 8, 9, 9, 2, 1, 9, 6, 8, 8, 2, 9, 6, 1, 1, 7, 9, 8, 6, 0, 0, 2, 3, 7, 3, 0, 8, 0, 9, 0, 8, 5, 1, 0, 0, 2, 6, 7, 6, 3, 3, 1, 0, 3, 1, 7, 0, 6, 1, 1, 9, 7, 2, 7, 8, 8, 2, 1, 1, 8, 1, 2, 0, 7, 0, 7, 6, 5, 7, 8, 1, 0, 1, 0, 9, 2, 1, 9, 1, 6, 0, 8, 9, 8, 9, 7, 0, 9, 6, 4, 7, 7, 2, 2, 6, 1, 6, 3, 9, 7, 2, 6, 6, 8, 6, 0, 3, 8, 0, 2, 0, 1, 0, 3, 8, 2, 6, 6, 6, 6, 3, 3, 2, 1, 2, 0, 0, 3, 0, 1, 7, 3, 2, 0, 0, 6, 6, 8, 0, 9, 0, 0, 6, 0, 6, 6, 1, 1, 8, 3, 3, 9, 1, 2, 0, 5, 5, 6, 9, 5, 8, 1, 3, 6, 7, 9, 1, 9, 1, 2, 1, 0, 8, 8, 1, 5, 9, 2, 6, 3, 8, 8, 6, 7, 5, 0, 6, 8, 0, 2, 0, 5, 3, 0, 6, 3, 5, 6, 8, 2, 0, 3, 0, 0, 5, 6, 0, 1, 6, 1, 3, 8, 1, 6, 0, 0, 2, 6, 0, 3, 8, 0, 1, 7, 3, 8, 3, 1, 1, 6, 9, 3, 8, 3, 0, 5, 9, 8, 6, 3, 9, 0, 9, 8, 1, 3, 0, 8, 3, 5, 2, 0, 8, 6, 5, 4, 6, 8, 6, 0, 0, 0, 3, 5, 8, 6, 2, 6, 9, 8, 6, 0, 5, 2, 8, 1, 6, 0, 2, 0, 9, 8, 0, 1, 6, 9, 8, 6, 8, 9, 1, 6, 3, 7, 7, 5, 5, 1, 7, 7, 6, 5, 1, 0, 0, 3, 9, 5, 5, 0, 2, 0, 5, 3, 6, 6, 2, 0, 6, 2, 2, 0, 2, 6, 1, 1, 5, 3, 2, 6, 0, 7, 8, 9, 3, 3, 8, 6, 1, 9, 3, 2, 9, 7, 1, 0, 0, 8, 6, 2, 6, 6, 1, 0, 2, 6, 6, 0, 2, 1, 3, 1, 1, 6, 5, 6, 0, 0, 7, 3, 6, 0, 6, 9, 8, 3, 0, 1, 8, 8, 0, 8, 5, 1, 6, 0, 6, 1, 5, 6, 2, 3, 8, 1, 0, 2, 2, 1, 1, 0, 6, 7, 8, 5, 7, 8, 3, 0, 0, 1, 8, 1, 0, 6, 0, 0, 1, 0, 2, 6, 9, 1, 1, 0, 9, 2, 5, 5, 6, 1, 5, 6, 0, 9, 5, 6, 5, 0, 6, 2, 4, 2, 7, 8, 6, 2, 0, 0, 2, 9, 6, 9, 2, 8, 8, 6, 2, 6, 3, 8, 2, 5, 6, 9, 3, 6, 6, 3, 6, 0, 5, 2, 4, 8, 8, 8, 1, 5, 2, 0, 7, 6, 3, 0, 8, 1, 7, 5, 0, 0, 6, 1, 8, 0, 6, 0, 8, 0, 0, 9, 2, 8, 3, 5, 2, 0, 2, 6, 3, 8, 5, 6, 6, 3, 0, 6, 2, 6, 2, 0, 8, 7, 9, 0, 2, 1, 6, 2, 0, 8, 7, 5, 6, 8, 5, 6, 0, 0, 0, 5, 1, 6, 8, 8, 0, 9, 0, 1, 5, 2, 3, 8, 8, 9, 0, 6, 1, 1, 2, 9, 3, 6, 1, 8, 0, 5, 0, 0, 7, 1, 5, 6, 9, 6, 1, 6, 2, 6, 0, 3, 9, 2, 1, 1, 5, 3, 2, 0, 2, 2, 9, 3, 1, 6, 6, 2, 8, 6, 1, 6, 3, 5, 1, 3, 9, 6, 0, 1, 6, 0, 1, 5, 6, 0, 6, 8, 8, 6, 2, 9, 3, 5, 8, 6, 1, 1, 0, 6, 1, 1, 0, 5, 5, 9, 2, 0, 8, 6, 6, 1, 0, 0, 1, 0, 0, 1, 6, 6, 1, 6, 0, 8, 6, 0, 0, 9, 1, 0, 1, 6, 1, 6, 0, 5, 3, 3, 0, 1, 1, 9, 6, 1, 1, 5, 9, 0, 6, 6, 6, 0, 5, 0, 9, 6, 0, 6, 9, 9, 0, 2, 1, 2, 6, 2, 5, 0, 0, 9, 9, 5, 8, 0, 1, 6, 1, 0, 0, 7, 1, 1, 2, 6, 1, 5, 2, 7, 2, 1, 0, 0, 8, 5, 1, 6, 3, 7, 0, 9, 7, 0, 3, 8, 7, 2, 3, 0, 1, 8, 6, 8, 3, 6, 0, 8, 5, 0, 6, 8, 2, 0, 2, 0, 4, 1, 5, 8, 2, 6, 6, 8, 7, 2, 7, 6, 5, 3, 1, 1, 8, 7, 5, 3, 0, 0, 1, 2, 5, 6, 9, 0, 3, 0, 8, 0, 1, 2, 0, 2, 3, 8, 6, 6, 2, 8, 8, 2, 5, 3, 9, 2, 3, 8, 6, 9, 1, 6, 5, 8, 3, 2, 6, 1, 0, 9, 3, 1, 3, 2, 0, 0, 2, 0, 1, 5, 8, 9, 1, 3, 8, 3, 8, 3, 5, 0, 8, 4, 5, 1, 0, 5, 2, 1, 2, 1, 2, 5, 6, 5, 6, 3, 0, 3, 9, 2, 6, 1, 2, 6, 8, 3, 6, 6, 0, 0, 6, 0, 0, 1, 1, 8, 3, 1, 7, 2, 6, 2, 7, 5, 6, 2, 5, 8, 7, 6, 2, 8, 9, 2, 2, 1, 9, 1, 8, 7, 6, 7, 2, 6, 5, 0, 6, 6, 3, 1, 7, 8, 6, 6, 1, 8, 0, 5, 1, 8, 0, 8, 5, 0, 1, 6, 3, 1, 1, 8, 0, 0, 8, 4, 2, 3, 5, 6, 0, 1, 2, 6, 0, 5, 3, 1, 6, 2, 0, 6, 0, 0, 7, 1, 1, 1, 7, 9, 1, 6, 7, 0, 6, 7, 8, 0, 2, 6, 6, 0, 6, 5, 3, 3, 6, 0, 3, 1, 0, 6, 1, 6, 0, 6, 1, 6, 8, 2, 7, 2, 9, 7, 6, 0, 3, 6, 0, 3, 3, 0, 9, 8, 6, 6, 9, 2, 5, 3, 0, 3, 1, 8, 2, 6, 6, 5, 9, 0, 6, 5, 8, 3, 2, 6, 6, 9, 6, 0, 2, 8, 8, 8, 0, 0, 7, 3, 6, 7, 8, 1, 4, 2, 3, 5, 8, 0, 6, 9, 8, 0, 8, 5, 7, 0, 5, 0, 8, 8, 9, 7, 8, 8, 0, 6, 1, 1, 0, 2, 6, 1, 0, 1, 6, 0, 8, 8, 8, 1, 3, 6, 3, 6, 5, 1, 0, 1, 9, 3, 2, 0, 6, 6, 0, 8, 6, 6, 1, 3, 1, 4, 6, 1, 0, 6, 0, 7, 8, 6, 8, 6, 6, 6, 6, 8, 6, 0, 5, 6, 1, 2, 8, 6, 8, 7, 3, 6, 3, 2, 0, 7, 6, 1, 1, 0, 2, 0, 6, 8, 2, 6, 3, 0, 0, 3, 5, 6, 0, 6, 5, 9, 2, 6, 0, 7, 5, 0, 2, 9, 8, 0, 6, 7, 2, 0, 2, 7, 6, 6, 6, 6, 5, 3, 2, 6, 3, 0, 8, 3, 1, 3, 6, 7, 7, 0, 1, 0, 0, 8, 3, 2, 0, 8, 6, 6, 5, 3, 6, 0, 7, 3, 3, 2, 1, 2, 7, 1, 3, 5, 5, 0, 1, 9, 0, 6, 5, 7, 2, 8, 2, 2, 3, 5, 7, 3, 3, 0, 6, 6, 3, 6, 3, 1, 1, 6, 1, 5, 2, 9, 3, 8, 8, 8, 6, 0, 0, 8, 6, 3, 3, 8, 6, 6, 6, 8, 0, 3, 1, 6, 0, 6, 3, 6, 8, 5, 8, 3, 9, 6, 6, 1, 5, 8, 0, 3, 1, 9, 0, 5, 0, 5, 6, 5, 5, 8, 2, 5, 0, 1, 5, 0, 0, 3, 2, 1, 3, 1, 3, 3, 0, 3, 8, 1, 3, 0, 6, 0, 9, 4, 3, 0, 0, 7, 8, 5, 8, 5, 0, 8, 1, 5, 8, 8, 5, 1, 5, 0, 3, 9, 0, 9, 5, 6, 2, 8, 6, 9, 5, 0, 0, 8, 6, 6, 6, 0, 6, 0, 7, 0, 1, 2, 1, 6, 6, 9, 9, 1, 8, 2, 9, 3, 6, 1, 6, 1, 5, 5, 2, 3, 5, 6, 9, 0, 7, 6, 0, 2, 2, 1, 9, 6, 3, 9, 7, 7, 3, 1, 6, 3, 1, 3, 5, 0, 3, 0, 3, 0, 7, 0, 3, 8, 8, 1, 5, 1, 5, 8, 3, 8, 6, 8, 8, 2, 3, 1, 0, 0, 6, 3, 6, 8, 2, 8, 6, 1, 1, 8, 0, 7, 5, 1, 6, 2, 3, 6, 3, 5, 8, 7, 9, 6, 0, 0, 9, 1, 8, 8, 8, 5, 9, 6, 3, 5, 8, 9, 1, 6, 9, 9, 0, 7, 7, 9, 4, 6, 0, 6, 3, 6, 6, 1, 1, 0, 0, 0, 6, 1, 1, 8, 9, 5, 0, 6, 9, 8, 6, 6, 3, 9, 7, 0, 9, 0, 0, 2, 1, 3, 6, 1, 8, 1, 9, 6, 6, 1, 3, 8, 0, 9, 5, 2, 6, 9, 0, 6, 6, 3, 9, 8, 2, 1, 7, 0, 8, 7, 8, 3, 5, 3, 0, 3, 8, 6, 6, 6, 2, 5, 2, 7, 8, 6, 0, 0, 6, 7, 2, 0, 7, 6, 8, 7, 0, 1, 6, 2, 8, 6, 8, 8, 3, 3, 4, 5, 5, 0, 1, 3, 6, 1, 3, 1, 5, 8, 6, 0, 2, 1, 7, 0, 8, 3, 3, 6, 1, 2, 9, 1, 6, 2, 5, 8, 1, 3, 2, 0, 6, 0, 2, 6, 6, 6, 6, 0, 7, 1, 0, 1, 1, 5, 1, 0, 3, 1, 3, 3, 6, 0, 1, 0, 6, 9, 9, 6, 2, 1, 1, 0, 0, 7, 0, 5, 1, 6, 2, 1, 6, 5, 1, 6, 9, 3, 6, 6, 2, 0, 3, 1, 8, 1, 9, 2, 9, 1, 0, 0, 6, 3, 3, 1, 2, 1, 6, 8, 9, 2, 1, 9, 0, 3, 3, 7, 2, 0, 8, 6, 1, 0, 6, 8, 1, 1, 0, 6, 6, 7, 9, 5, 2, 1, 6, 6, 2, 6, 3, 8, 6, 6, 2, 2, 9, 9, 9, 6, 6, 5, 5, 8, 0, 1, 1, 1, 8, 9, 0, 1, 6, 9, 8, 6, 0, 6, 8, 0, 7, 8, 8, 4, 9, 1, 3, 6, 6, 6, 0, 6, 6, 0, 7, 0, 1, 0, 1, 6, 1, 2, 1, 0, 7, 2, 6, 0, 8, 3, 6, 5, 1, 3, 0, 2, 9, 3, 0, 8, 5, 3, 1, 8, 1, 8, 2, 6, 6, 8, 7, 6, 2, 6, 0, 0, 9, 0, 0, 5, 4, 0, 1, 6, 2, 8, 8, 0, 7, 8, 0, 0, 9, 3, 6, 2, 3, 6, 0, 8, 6, 2, 0, 0, 7, 5, 8, 0, 5, 1, 8, 5, 0, 3, 5, 9, 8, 3, 6, 1, 2, 6, 3, 1, 8, 6, 2, 0, 8, 8, 6, 1, 0, 0, 6, 3, 6, 3, 0, 6, 9, 0, 5, 6, 2, 8, 9, 9, 2, 1, 1, 8, 6, 1, 0, 6, 0, 9, 7, 1, 0, 6, 7, 6, 1, 6, 0, 0, 7, 6, 6, 0, 0, 6, 6, 7, 6, 5, 8, 2, 0, 3, 8, 8, 7, 1, 6, 8, 1, 3, 0, 1, 6, 5, 7, 0, 9, 1, 6, 1, 8, 2, 8, 5, 6, 2, 8, 2, 6, 8, 8, 1, 1, 0, 2, 7, 0, 6, 0, 7, 0, 3, 0, 8, 5, 8, 3, 2, 5, 3, 0, 4, 9, 5, 6, 9, 0, 9, 1, 1, 0, 6, 0, 3, 6, 6, 7, 7, 3, 0, 6, 1, 1, 6, 2, 6, 6, 1, 0, 2, 6, 6, 2, 2, 3, 3, 6, 2, 1, 3, 3, 8, 8, 3, 9, 2, 1, 1, 8, 2, 3, 8, 7, 9, 8, 2, 2, 0, 9, 1, 6, 9, 3, 8, 5, 9, 0, 3, 5, 6, 1, 5, 6, 7, 6, 2, 6, 0, 5, 9, 1, 2, 6, 6, 6, 3, 0, 0, 1, 7, 8, 6, 6, 3, 7, 1, 8, 5, 2, 6, 2, 6, 0, 2, 8, 5, 6, 0, 6, 7, 5, 1, 8, 8, 9, 7, 8, 1, 1, 3, 7, 6, 9, 3, 1, 8, 5, 2, 6, 6, 6, 1, 5, 8, 5, 3, 1, 5, 6, 0, 8, 5, 1, 6, 2, 9, 8, 0, 7, 8, 3, 5, 8, 2, 2, 6, 1, 2, 2, 3, 1, 0, 8, 0, 6, 3, 6, 2, 5, 5, 6, 8, 8, 6, 8, 2, 0, 8, 0, 8, 0, 9, 8, 6, 0, 8, 6, 6, 3, 1, 8, 0, 9, 6, 5, 0, 2, 8, 6, 5, 1, 9, 1, 0, 6, 0, 3, 3, 6, 0, 3, 9, 2, 2, 1, 1, 0, 2, 8, 6, 0, 0, 3, 7, 8, 5, 1, 0, 5, 8, 8, 9, 9, 5, 8, 8, 1, 2, 8, 1, 0, 6, 1, 1, 0, 6, 6, 6, 0, 2, 9, 3, 1, 8, 2, 5, 7, 6, 5, 3, 1, 8, 0, 2, 2, 5, 8, 0, 1, 2, 1, 0, 4, 0, 2, 6, 1, 9, 8, 6, 0, 0, 9, 1, 2, 3, 7, 2, 0, 0, 8, 9, 6, 0, 3, 1, 9, 0, 0, 7, 2, 0, 3, 2, 5, 3, 6, 8, 9, 6, 2, 7, 5, 0, 8, 5, 6, 0, 9, 7, 0, 8, 0, 6, 1, 9, 3, 1, 5, 2, 9, 6, 1, 6, 2, 7, 6, 9, 2, 3, 1, 1, 0, 2, 1, 8, 0, 3, 8, 1, 0, 2, 3, 6, 5, 6, 0, 5, 6, 3, 1, 1, 8, 2, 8, 8, 2, 0, 5, 0, 0, 5, 6, 8, 9, 8, 0, 2, 0, 1, 7, 3, 6, 2, 5, 8, 6, 9, 5, 3, 0, 7, 7, 7, 6, 9, 1, 6, 5, 9, 7, 1, 3, 5, 0, 8, 5, 1, 2, 0, 3, 1, 1, 1, 1, 0, 0, 6, 0, 3, 0, 0, 0, 6, 6, 8, 0, 1, 1, 0, 1, 2, 7, 2, 8, 1, 6, 9, 9, 2, 1, 6, 9, 8, 7, 5, 8, 3, 3, 1, 8, 1, 7, 9, 3, 7, 3, 6, 5, 9, 0, 6, 6, 1, 0, 8, 6, 9, 8, 7, 7, 2, 1, 5, 6, 6, 6, 0, 9, 8, 6, 1, 6, 1, 9, 0, 9, 3, 8, 6, 3, 9, 6, 0, 6, 1, 8, 6, 6, 6, 6, 9, 2, 3, 0, 0, 0, 6, 0, 2, 6, 8, 2, 1, 2, 1, 5, 3, 2, 1, 1, 0, 1, 0, 7, 0, 5, 3, 2, 2, 7, 1, 8, 8, 7, 8, 1, 1, 3, 0, 6, 6, 5, 4, 0, 0, 2, 0, 8, 7, 8, 3, 5, 8, 6, 0, 1, 8]