-rw-r--r--autoloads/CLI.gd21
-rw-r--r--bullets/scenes/EnemyLaser.tscn65
-rw-r--r--bullets/scenes/EnemyLaserBig.tscn76
-rw-r--r--bullets/scenes/Fireball.tscn11
-rw-r--r--bullets/scenes/Laser.tscn22
-rw-r--r--bullets/scenes/missile.tscn12
-rw-r--r--bullets/scripts/Laser.gd41
-rw-r--r--bullets/scripts/missile.gd10
-rw-r--r--effects/Game.gd4
-rw-r--r--enemy/scripts/Drone.gd4
-rw-r--r--enemy/scripts/EnemyClass.gd33
-rw-r--r--other/Save&Load.gd4
-rw-r--r--player/scripts/ShipArea2d.gd5
-rw-r--r--player/scripts/playerstats.gd9
-rw-r--r--project.godot8
-rw-r--r--ui/buttontheme.tres2
-rw-r--r--ui/scenes/StartMenu.tscn3
-rw-r--r--ui/scenes/pause.tscn60
-rw-r--r--ui/scenes/settings.tscn166
-rw-r--r--ui/scripts/HpUi.gd2
-rw-r--r--ui/scripts/StartMenu.gd3
-rw-r--r--ui/scripts/pausemenu.gd63
-rw-r--r--ui/scripts/settings.gd47
-rw-r--r--world/World.gd7
24 files changed, 287 insertions, 391 deletions
diff --git a/autoloads/CLI.gd b/autoloads/CLI.gd
index 095bfd3..b471b08 100644
--- a/autoloads/CLI.gd
+++ b/autoloads/CLI.gd
@@ -1,11 +1,16 @@
extends Node
+
func _ready() -> void:
- var p := Parser.new()
- p.add_argument(Arg.new({triggers=["-h", "--help", "-?"], help="show this help message and exit", action="store_true"}))
- var args = p.parse_arguments()
- if args == null:
- get_tree().quit()
- elif args.get("help", false):
- print(p.help())
- get_tree().quit() \ No newline at end of file
+ var p := Parser.new()
+ p.add_argument(
+ Arg.new(
+ {triggers = ["-h", "--help", "-?"], help = "show this help message and exit", action = "store_true"}
+ )
+ )
+ var args = p.parse_arguments()
+ if args == null:
+ get_tree().quit()
+ elif args.get("help", false):
+ print(p.help())
+ get_tree().quit()
diff --git a/bullets/scenes/EnemyLaser.tscn b/bullets/scenes/EnemyLaser.tscn
index 174b1b7..7e1adca 100644
--- a/bullets/scenes/EnemyLaser.tscn
+++ b/bullets/scenes/EnemyLaser.tscn
@@ -5,26 +5,6 @@
[ext_resource path="res://bullets/scripts/EnemyLaser.gd" type="Script" id=3]
[ext_resource path="res://sprites/blackandwhitefball-Sheet.png" type="Texture" id=4]
-[sub_resource type="AtlasTexture" id=29]
-flags = 2
-atlas = ExtResource( 4 )
-region = Rect2( 0, 0, 19, 11 )
-
-[sub_resource type="AtlasTexture" id=30]
-flags = 2
-atlas = ExtResource( 4 )
-region = Rect2( 19, 0, 19, 11 )
-
-[sub_resource type="AtlasTexture" id=31]
-flags = 2
-atlas = ExtResource( 4 )
-region = Rect2( 38, 0, 19, 11 )
-
-[sub_resource type="AtlasTexture" id=32]
-flags = 2
-atlas = ExtResource( 4 )
-region = Rect2( 57, 0, 19, 11 )
-
[sub_resource type="AtlasTexture" id=16]
flags = 2
atlas = ExtResource( 1 )
@@ -90,26 +70,46 @@ flags = 2
atlas = ExtResource( 1 )
region = Rect2( 192, 0, 16, 16 )
+[sub_resource type="AtlasTexture" id=29]
+flags = 2
+atlas = ExtResource( 4 )
+region = Rect2( 0, 0, 19, 11 )
+
+[sub_resource type="AtlasTexture" id=30]
+flags = 2
+atlas = ExtResource( 4 )
+region = Rect2( 19, 0, 19, 11 )
+
+[sub_resource type="AtlasTexture" id=31]
+flags = 2
+atlas = ExtResource( 4 )
+region = Rect2( 38, 0, 19, 11 )
+
+[sub_resource type="AtlasTexture" id=32]
+flags = 2
+atlas = ExtResource( 4 )
+region = Rect2( 57, 0, 19, 11 )
+
[sub_resource type="SpriteFrames" id=14]
resource_local_to_scene = true
animations = [ {
-"frames": [ SubResource( 29 ), SubResource( 30 ), SubResource( 31 ), SubResource( 32 ) ],
-"loop": true,
-"name": "New Anim 1",
-"speed": 15.0
-}, {
"frames": [ SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ), SubResource( 27 ), SubResource( 28 ) ],
"loop": true,
"name": "New Anim",
"speed": 25.0
+}, {
+"frames": [ SubResource( 29 ), SubResource( 30 ), SubResource( 31 ), SubResource( 32 ) ],
+"loop": true,
+"name": "New Anim 1",
+"speed": 15.0
} ]
-[sub_resource type="RectangleShape2D" id=15]
+[sub_resource type="RectangleShape2D" id=34]
resource_local_to_scene = true
-extents = Vector2( 4, 6 )
+extents = Vector2( 4, 3 )
-[sub_resource type="OccluderPolygon2D" id=33]
-polygon = PoolVector2Array( -6, -3, -6, 2, -3, 4, 4, 4, 4, -5, -4, -5 )
+[sub_resource type="OccluderPolygon2D" id=35]
+polygon = PoolVector2Array( -5, -2, -5, 2, -3, 4, 4, 4, 4, -4, -3, -4 )
[node name="EnemyLaser" type="RigidBody2D" groups=["ebullet"]]
z_index = 1
@@ -126,13 +126,12 @@ __meta__ = {
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
frames = SubResource( 14 )
animation = "New Anim"
-frame = 3
+frame = 12
playing = true
flip_h = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-position = Vector2( 0, -1.19209e-07 )
-shape = SubResource( 15 )
+shape = SubResource( 34 )
[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."]
position = Vector2( 2.08616e-07, -2.38419e-07 )
@@ -144,6 +143,6 @@ volume_db = -30.0
autoplay = true
[node name="LightOccluder2D" type="LightOccluder2D" parent="."]
-occluder = SubResource( 33 )
+occluder = SubResource( 35 )
[connection signal="screen_exited" from="VisibilityNotifier2D" to="." method="_on_VisibilityNotifier2D_screen_exited"]
diff --git a/bullets/scenes/EnemyLaserBig.tscn b/bullets/scenes/EnemyLaserBig.tscn
index 9101838..d021285 100644
--- a/bullets/scenes/EnemyLaserBig.tscn
+++ b/bullets/scenes/EnemyLaserBig.tscn
@@ -1,134 +1,134 @@
-[gd_scene load_steps=32 format=2]
+[gd_scene load_steps=33 format=2]
[ext_resource path="res://bullets/scenes/EnemyLaser.tscn" type="PackedScene" id=1]
[ext_resource path="res://sprites/bigenemylasers.png" type="Texture" id=2]
-[sub_resource type="AtlasTexture" id=1]
+[sub_resource type="AtlasTexture" id=16]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 0, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=2]
+[sub_resource type="AtlasTexture" id=17]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 64, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=3]
+[sub_resource type="AtlasTexture" id=18]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 128, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=4]
+[sub_resource type="AtlasTexture" id=19]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 192, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=5]
+[sub_resource type="AtlasTexture" id=20]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 256, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=6]
+[sub_resource type="AtlasTexture" id=21]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 320, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=7]
+[sub_resource type="AtlasTexture" id=22]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 384, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=8]
+[sub_resource type="AtlasTexture" id=23]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 448, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=9]
+[sub_resource type="AtlasTexture" id=24]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 512, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=10]
+[sub_resource type="AtlasTexture" id=25]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 576, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=11]
+[sub_resource type="AtlasTexture" id=26]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 640, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=12]
+[sub_resource type="AtlasTexture" id=27]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 704, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=13]
+[sub_resource type="AtlasTexture" id=28]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 768, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=16]
+[sub_resource type="AtlasTexture" id=1]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 0, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=17]
+[sub_resource type="AtlasTexture" id=2]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 64, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=18]
+[sub_resource type="AtlasTexture" id=3]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 128, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=19]
+[sub_resource type="AtlasTexture" id=4]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 192, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=20]
+[sub_resource type="AtlasTexture" id=5]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 256, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=21]
+[sub_resource type="AtlasTexture" id=6]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 320, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=22]
+[sub_resource type="AtlasTexture" id=7]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 384, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=23]
+[sub_resource type="AtlasTexture" id=8]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 448, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=24]
+[sub_resource type="AtlasTexture" id=9]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 512, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=25]
+[sub_resource type="AtlasTexture" id=10]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 576, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=26]
+[sub_resource type="AtlasTexture" id=11]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 640, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=27]
+[sub_resource type="AtlasTexture" id=12]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 704, 0, 64, 64 )
-[sub_resource type="AtlasTexture" id=28]
+[sub_resource type="AtlasTexture" id=13]
flags = 2
atlas = ExtResource( 2 )
region = Rect2( 768, 0, 64, 64 )
@@ -136,40 +136,42 @@ region = Rect2( 768, 0, 64, 64 )
[sub_resource type="SpriteFrames" id=14]
resource_local_to_scene = true
animations = [ {
-"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ) ],
+"frames": [ SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ), SubResource( 27 ), SubResource( 28 ) ],
"loop": true,
-"name": "default",
+"name": "New Anim",
"speed": 25.0
}, {
-"frames": [ SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ), SubResource( 27 ), SubResource( 28 ) ],
+"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ) ],
"loop": true,
-"name": "New Anim",
+"name": "default",
"speed": 25.0
} ]
-[sub_resource type="RectangleShape2D" id=15]
-resource_local_to_scene = true
-extents = Vector2( 16, 16 )
+[sub_resource type="CircleShape2D" id=30]
+radius = 17.0294
[sub_resource type="AudioStreamSample" id=29]
resource_local_to_scene = true
data = PoolByteArray( 0, 0, 203, 21, 206, 21, 202, 21, 206, 21, 201, 21, 204, 21, 204, 21, 202, 21, 204, 21, 201, 21, 202, 21, 203, 21, 201, 21, 202, 21, 201, 21, 201, 21, 236, 20, 237, 20, 184, 19, 188, 19, 115, 18, 121, 18, 29, 17, 33, 17, 174, 15, 174, 15, 20, 14, 20, 14, 74, 12, 75, 12, 47, 10, 45, 10, 107, 7, 102, 7, 35, 1, 33, 1, 181, 248, 183, 248, 16, 246, 21, 246, 33, 244, 37, 244, 141, 242, 143, 242, 50, 241, 50, 241, 3, 240, 1, 240, 243, 238, 240, 238, 244, 237, 237, 237, 20, 237, 10, 237, 66, 236, 59, 236, 124, 235, 122, 235, 196, 234, 195, 234, 67, 234, 64, 234, 66, 234, 66, 234, 66, 234, 66, 234, 67, 234, 66, 234, 69, 234, 66, 234, 67, 234, 69, 234, 66, 234, 71, 234, 65, 234, 71, 234, 68, 234, 68, 234, 71, 234, 67, 234, 72, 234, 68, 234, 72, 234, 68, 234, 73, 234, 69, 234, 73, 234, 68, 234, 188, 21, 182, 21, 187, 21, 182, 21, 185, 21, 183, 21, 184, 21, 183, 21, 183, 21, 183, 21, 182, 21, 183, 21, 182, 21, 181, 21, 184, 21, 178, 21, 184, 21, 180, 21, 181, 21, 181, 21, 53, 21, 53, 21, 24, 20, 22, 20, 236, 18, 233, 18, 177, 17, 174, 17, 96, 16, 95, 16, 244, 14, 246, 14, 101, 13, 103, 13, 161, 11, 162, 11, 122, 9, 122, 9, 159, 6, 159, 6, 3, 253, 7, 253, 125, 248, 131, 248, 17, 246, 24, 246, 67, 244, 66, 244, 202, 242, 193, 242, 128, 241, 123, 241, 90, 240, 92, 240, 85, 239, 86, 239, 106, 238, 102, 238, 147, 237, 140, 237, 199, 236, 194, 236, 12, 236, 5, 236, 97, 235, 84, 235, 187, 234, 181, 234, 86, 234, 88, 234, 86, 234, 87, 234, 89, 234, 87, 234, 88, 234, 88, 234, 89, 234, 88, 234, 89, 234, 88, 234, 92, 234, 85, 234, 95, 234, 85, 234, 93, 234, 90, 234, 90, 234, 90, 234, 94, 234, 87, 234, 95, 234, 90, 234, 91, 234, 94, 234, 162, 21, 165, 21, 162, 21, 165, 21, 161, 21, 164, 21, 162, 21, 163, 21, 161, 21, 164, 21, 159, 21, 163, 21, 161, 21, 160, 21, 163, 21, 159, 21, 160, 21, 162, 21, 157, 21, 162, 21, 159, 21, 159, 21, 127, 21, 125, 21, 117, 20, 114, 20, 95, 19, 94, 19, 57, 18, 63, 18, 12, 17, 15, 17, 202, 15, 199, 15, 108, 14, 104, 14, 233, 12, 229, 12, 51, 11, 47, 11, 37, 9, 35, 9, 94, 6, 96, 6, 25, 253, 28, 253, 189, 248, 193, 248, 104, 246, 107, 246, 169, 244, 167, 244, 57, 243, 53, 243, 4, 242, 3, 242, 233, 240, 234, 240, 238, 239, 235, 239, 11, 239, 4, 239, 56, 238, 51, 238, 114, 237, 115, 237, 189, 236, 192, 236, 20, 236, 21, 236, 117, 235, 119, 235, 231, 234, 233, 234, 109, 234, 107, 234, 112, 234, 107, 234, 112, 234, 109, 234, 112, 234, 107, 234, 114, 234, 109, 234, 112, 234, 113, 234, 108, 234, 115, 234, 111, 234, 112, 234, 114, 234, 110, 234, 115, 234, 112, 234, 114, 234, 114, 234, 113, 234, 114, 234, 115, 234, 113, 234, 117, 234, 112, 234, 144, 21, 139, 21, 142, 21, 140, 21, 139, 21, 142, 21, 138, 21, 141, 21, 138, 21, 141, 21, 136, 21, 142, 21, 136, 21, 139, 21, 139, 21, 136, 21, 139, 21, 136, 21, 138, 21, 137, 21, 137, 21, 136, 21, 135, 21, 138, 21, 21, 21, 26, 21, 24, 20, 29, 20, 23, 19, 24, 19, 7, 18, 4, 18, 234, 16, 229, 16, 186, 15, 182, 15, 114, 14, 113, 14, 20, 13, 20, 13, 134, 11, 135, 11, 185, 9, 187, 9, 116, 7, 116, 7, 229, 3, 230, 3, 119, 250, 122, 250, 187, 247, 189, 247, 213, 245, 215, 245, 93, 244, 95, 244, 20, 243, 22, 243, 249, 241, 249, 241, 250, 240, 250, 240, 26, 240, 29, 240, 70, 239, 71, 239, 135, 238, 133, 238, 217, 237, 219, 237, 43, 237, 52, 237, 142, 236, 151, 236, 251, 235, 1, 236, 117, 235, 124, 235, 242, 234, 245, 234, 133, 234, 132, 234, 136, 234, 131, 234, 138, 234, 130, 234, 139, 234, 131, 234, 137, 234, 135, 234, 134, 234, 137, 234, 136, 234, 135, 234, 138, 234, 134, 234, 139, 234, 136, 234, 138, 234, 136, 234, 140, 234, 135, 234, 141, 234, 136, 234, 140, 234, 138, 234, 139, 234, 140, 234, 138, 234, 141, 234, 116, 21, 116, 21, 117, 21, 114, 21, 116, 21, 115, 21, 116, 21, 113, 21, 117, 21, 112, 21, 115, 21, 114, 21, 112, 21, 116, 21, 112, 21, 113, 21, 113, 21, 112, 21, 113, 21, 112, 21, 111, 21, 113, 21, 110, 21, 113, 21, 109, 21, 112, 21, 33, 21, 35, 21, 55, 20, 58, 20, 69, 19, 73, 19, 79, 18, 79, 18, 77, 17, 77, 17, 60, 16, 63, 16, 27, 15, 29, 15, 236, 13, 238, 13, 151, 12, 158, 12, 32, 11, 40, 11, 117, 9, 123, 9, 91, 7, 95, 7, 51, 4, 51, 4, 19, 251, 18, 251, 92, 248, 87, 248, 128, 246, 120, 246, 14, 245, 10, 245, 202, 243, 204, 243, 191, 242, 189, 242, 203, 241, 194, 241, 244, 240, 238, 240, 35, 240, 37, 240, 107, 239, 114, 239, 189, 238, 192, 238, 37, 238, 34, 238, 141, 237, 137, 237, 3, 237, 4, 237, 122, 236, 126, 236, 0, 236, 4, 236, 136, 235, 138, 235, 27, 235, 29, 235, 174, 234, 176, 234, 159, 234, 161, 234, 161, 234, 162, 234, 158, 234, 166, 234, 156, 234, 167, 234, 159, 234, 163, 234, 164, 234, 161, 234, 163, 234, 165, 234, 161, 234, 165, 234, 165, 234, 161, 234, 168, 234, 161, 234, 167, 234, 163, 234, 168, 234, 162, 234, 169, 234, 163, 234, 168, 234, 165, 234, 168, 234, 165, 234, 147, 10, 143, 10, 89, 21, 89, 21, 87, 21, 90, 21, 86, 21, 89, 21, 87, 21, 86, 21, 90, 21, 82, 21, 91, 21, 84, 21, 86, 21, 88, 21, 83, 21, 87, 21, 84, 21, 85, 21, 85, 21, 86, 21, 83, 21, 84, 21, 84, 21, 83, 21, 84, 21, 84, 21, 81, 21, 85, 21, 1, 21, 6, 21, 44, 20, 48, 20, 84, 19, 84, 19, 117, 18, 114, 18, 139, 17, 133, 17, 154, 16, 147, 16, 157, 15, 153, 15, 139, 14, 141, 14, 106, 13, 112, 13, 58, 12, 58, 12, 230, 10, 230, 10, 87, 9, 90, 9, 126, 7, 129, 7, 228, 4, 234, 4, 100, 252, 105, 252, 62, 249, 66, 249, 96, 247, 104, 247, 239, 245, 248, 245, 191, 244, 195, 244, 176, 243, 175, 243, 199, 242, 197, 242, 246, 241, 242, 241, 55, 241, 51, 241, 133, 240, 133, 240, 217, 239, 220, 239, 66, 239, 67, 239, 182, 238, 181, 238, 50, 238, 50, 238, 179, 237, 182, 237, 56, 237, 55, 237, 201, 236, 201, 236, 94, 236, 98, 236, 250, 235, 252, 235, 156, 235, 157, 235, 65, 235, 69, 235, 227, 234, 232, 234, 190, 234, 190, 234, 191, 234, 192, 234, 188, 234, 196, 234, 187, 234, 195, 234, 190, 234, 193, 234, 193, 234, 192, 234, 194, 234, 191, 234, 196, 234, 192, 234, 194, 234, 195, 234, 193, 234, 196, 234, 195, 234, 194, 234, 196, 234, 195, 234, 195, 234, 198, 234, 194, 234, 198, 234, 196, 234, 197, 234, 196, 234, 200, 234, 194, 234, 201, 234, 26, 235, 27, 235, 59, 21, 57, 21, 57, 21, 58, 21, 56, 21, 57, 21, 56, 21, 57, 21, 55, 21, 57, 21, 54, 21, 57, 21, 54, 21, 56, 21, 53, 21, 56, 21, 53, 21, 55, 21, 54, 21, 52, 21, 55, 21, 51, 21, 55, 21, 51, 21, 54, 21, 51, 21, 52, 21, 52, 21, 51, 21, 51, 21, 51, 21, 52, 21, 221, 20, 225, 20, 27, 20, 32, 20, 89, 19, 89, 19, 137, 18, 138, 18, 184, 17, 189, 17, 224, 16, 232, 16, 3, 16, 8, 16, 30, 15, 31, 15, 48, 14, 48, 14, 49, 13, 47, 13, 29, 12, 28, 12, 240, 10, 240, 10, 159, 9, 160, 9, 23, 8, 24, 8, 39, 6, 37, 6, 236, 2, 230, 2, 60, 251, 54, 251, 253, 248, 249, 248, 105, 247, 104, 247, 39, 246, 39, 246, 24, 245, 22, 245, 43, 244, 41, 244, 94, 243, 93, 243, 159, 242, 159, 242, 239, 241, 239, 241, 78, 241, 77, 241, 184, 240, 184, 240, 51, 240, 48, 240, 180, 239, 172, 239, 56, 239, 52, 239, 193, 238, 194, 238, 89, 238, 90, 238, 243, 237, 242, 237, 145, 237, 143, 237, 52, 237, 49, 237, 225, 236, 221, 236, 141, 236, 137, 236, 60, 236, 56, 236, 238, 235, 235, 235, 169, 235, 170, 235, 96, 235, 99, 235, 28, 235, 31, 235, 226, 234, 225, 234, 226, 234, 226, 234, 225, 234, 228, 234, 225, 234, 226, 234, 229, 234, 224, 234, 231, 234, 223, 234, 233, 234, 223, 234, 232, 234, 225, 234, 231, 234, 228, 234, 229, 234, 230, 234, 228, 234, 232, 234, 229, 234, 230, 234, 232, 234, 228, 234, 234, 234, 229, 234, 232, 234, 232, 234, 231, 234, 234, 234, 230, 234, 234, 234, 232, 234, 234, 234, 233, 234, 234, 234, 232, 234, 236, 234, 21, 236, 23, 236, 22, 21, 21, 21, 21, 21, 21, 21, 22, 21, 19, 21, 21, 21, 19, 21, 21, 21, 19, 21, 19, 21, 19, 21, 20, 21, 17, 21, 20, 21, 16, 21, 20, 21, 16, 21, 19, 21, 16, 21, 17, 21, 18, 21, 14, 21, 19, 21, 14, 21, 18, 21, 13, 21, 18, 21, 12, 21, 19, 21, 11, 21, 17, 21, 13, 21, 14, 21, 15, 21, 12, 21, 5, 21, 2, 21, 91, 20, 92, 20, 175, 19, 177, 19, 0, 19, 0, 19, 82, 18, 78, 18, 157, 17, 153, 17, 226, 16, 222, 16, 35, 16, 33, 16, 96, 15, 90, 15, 148, 14, 138, 14, 191, 13, 186, 13, 221, 12, 219, 12, 238, 11, 234, 11, 239, 10, 238, 10, 217, 9, 215, 9, 156, 8, 151, 8, 46, 7, 43, 7, 82, 5, 82, 5, 221, 1, 221, 1, 49, 251, 48, 251, 79, 249, 79, 249, 241, 247, 241, 247, 217, 246, 213, 246, 227, 245, 221, 245, 16, 245, 14, 245, 80, 244, 85, 244, 164, 243, 171, 243, 11, 243, 12, 243, 121, 242, 118, 242, 244, 241, 241, 241, 121, 241, 118, 241, 2, 241, 4, 241, 146, 240, 154, 240, 44, 240, 50, 240, 200, 239, 202, 239, 110, 239, 110, 239, 23, 239, 25, 239, 195, 238, 199, 238, 118, 238, 119, 238, 43, 238, 45, 238, 227, 237, 231, 237, 159, 237, 162, 237, 95, 237, 98, 237, 33, 237, 34, 237, 233, 236, 229, 236, 176, 236, 174, 236, 118, 236, 124, 236, 64, 236, 72, 236, 15, 236, 20, 236, 226, 235, 225, 235, 182, 235, 179, 235, 139, 235, 134, 235, 96, 235, 92, 235, 55, 235, 54, 235, 14, 235, 15, 235, 14, 235, 10, 235, 16, 235, 9, 235, 17, 235, 11, 235, 16, 235, 12, 235, 16, 235, 13, 235, 16, 235, 14, 235, 15, 235, 17, 235, 13, 235, 19, 235, 13, 235, 20, 235, 13, 235, 20, 235, 14, 235, 20, 235, 16, 235, 19, 235, 17, 235, 18, 235, 19, 235, 18, 235, 20, 235, 18, 235, 20, 235, 20, 235, 19, 235, 21, 235, 19, 235, 22, 235, 19, 235, 23, 235, 19, 235, 23, 235, 21, 235, 21, 235, 24, 235, 21, 235, 28, 235, 29, 235, 231, 20, 236, 20, 230, 20, 235, 20, 230, 20, 234, 20, 231, 20, 231, 20, 233, 20, 228, 20, 235, 20, 227, 20, 233, 20, 229, 20, 230, 20, 230, 20, 229, 20, 230, 20, 229, 20, 229, 20, 227, 20, 230, 20, 226, 20, 231, 20, 225, 20, 229, 20, 226, 20, 228, 20, 226, 20, 226, 20, 228, 20, 223, 20, 230, 20, 222, 20, 226, 20, 226, 20, 223, 20, 227, 20, 222, 20, 225, 20, 223, 20, 225, 20, 222, 20, 224, 20, 173, 20, 173, 20, 29, 20, 29, 20, 138, 19, 139, 19, 246, 18, 248, 18, 96, 18, 96, 18, 204, 17, 198, 17, 51, 17, 45, 17, 147, 16, 149, 16, 242, 15, 245, 15, 80, 15, 78, 15, 170, 14, 169, 14, 249, 13, 252, 13, 73, 13, 72, 13, 147, 12, 142, 12, 207, 11, 203, 11, 0, 11, 4, 11, 36, 10, 43, 10, 56, 9, 53, 9, 55, 8, 49, 8, 13, 7, 10, 7, 152, 5, 151, 5, 143, 3, 142, 3, 17, 253, 16, 253, 214, 250, 217, 250, 101, 249, 109, 249, 82, 248, 88, 248, 111, 247, 112, 247, 170, 246, 171, 246, 249, 245, 253, 245, 84, 245, 88, 245, 200, 244, 196, 244, 71, 244, 64, 244, 201, 243, 203, 243, 84, 243, 92, 243, 235, 242, 239, 242, 138, 242, 139, 242, 45, 242, 46, 242, 207, 241, 211, 241, 124, 241, 127, 241, 47, 241, 46, 241, 230, 240, 227, 240, 159, 240, 157, 240, 90, 240, 92, 240, 23, 240, 30, 240, 217, 239, 224, 239, 162, 239, 161, 239, 109, 239, 104, 239, 56, 239, 52, 239, 2, 239, 3, 239, 210, 238, 209, 238, 169, 238, 165, 238, 124, 238, 121, 238, 80, 238, 79, 238, 38, 238, 39, 238, 252, 237, 2, 238, 213, 237, 219, 237, 179, 237, 181, 237, 145, 237, 145, 237, 117, 237, 115, 237, 85, 237, 82, 237, 54, 237, 52, 237, 24, 237, 22, 237, 254, 236, 254, 236, 228, 236, 226, 236, 201, 236, 200, 236, 176, 236, 176, 236, 154, 236, 154, 236, 132, 236, 132, 236, 109, 236, 110, 236, 90, 236, 92, 236, 71, 236, 71, 236, 51, 236, 51, 236, 35, 236, 36, 236, 19, 236, 16, 236, 1, 236, 255, 235, 244, 235, 243, 235, 227, 235, 228, 235, 213, 235, 217, 235, 199, 235, 202, 235, 190, 235, 189, 235, 177, 235, 177, 235, 167, 235, 168, 235, 155, 235, 155, 235, 147, 235, 147, 235, 135, 235, 136, 235, 128, 235, 129, 235, 118, 235, 118, 235, 113, 235, 112, 235, 103, 235, 103, 235, 97, 235, 100, 235, 91, 235, 95, 235, 82, 235, 88, 235, 79, 235, 84, 235, 76, 235, 78, 235, 78, 235, 76, 235, 80, 235, 76, 235, 80, 235, 77, 235, 80, 235, 77, 235, 81, 235, 79, 235, 80, 235, 80, 235, 79, 235, 81, 235, 81, 235, 81, 235, 81, 235, 81, 235, 81, 235, 83, 235, 81, 235, 83, 235, 82, 235, 82, 235, 174, 20, 172, 20, 175, 20, 169, 20, 176, 20, 168, 20, 176, 20, 168, 20, 175, 20, 168, 20, 173, 20, 169, 20, 171, 20, 171, 20, 169, 20, 170, 20, 170, 20, 168, 20, 171, 20, 167, 20, 170, 20, 167, 20, 169, 20, 168, 20, 166, 20, 170, 20, 164, 20, 170, 20, 164, 20, 168, 20, 165, 20, 167, 20, 165, 20, 166, 20, 164, 20, 167, 20, 163, 20, 165, 20, 164, 20, 165, 20, 163, 20, 165, 20, 161, 20, 165, 20, 163, 20, 161, 20, 165, 20, 159, 20, 165, 20, 160, 20, 163, 20, 160, 20, 160, 20, 163, 20, 158, 20, 163, 20, 159, 20, 159, 20, 64, 20, 62, 20, 200, 19, 204, 19, 81, 19, 86, 19, 220, 18, 224, 18, 101, 18, 106, 18, 238, 17, 244, 17, 117, 17, 124, 17, 253, 16, 0, 17, 135, 16, 133, 16, 12, 16, 11, 16, 142, 15, 144, 15, 17, 15, 16, 15, 147, 14, 144, 14, 18, 14, 17, 14, 139, 13, 141, 13, 5, 13, 6, 13, 124, 12, 121, 12, 240, 11, 237, 11, 93, 11, 94, 11, 195, 10, 195, 10, 41, 10, 36, 10, 134, 9, 128, 9, 211, 8, 206, 8, 25, 8, 16, 8, 79, 7, 67, 7, 104, 6, 98, 6, 90, 5, 86, 5, 250, 3, 244, 3, 135, 1, 129, 1, 141, 252, 141, 252, 33, 251, 35, 251, 28, 250, 32, 250, 73, 249, 80, 249, 151, 248, 157, 248, 253, 247, 255, 247, 116, 247, 116, 247, 246, 246, 246, 246, 132, 246, 130, 246, 26, 246, 25, 246, 183, 245, 185, 245, 91, 245, 92, 245, 7, 245, 7, 245, 183, 244, 182, 244, 108, 244, 107, 244, 36, 244, 38, 244, 223, 243, 227, 243, 163, 243, 167, 243, 102, 243, 107, 243, 45, 243, 48, 243, 249, 242, 245, 242, 203, 242, 195, 242, 153, 242, 148, 242, 103, 242, 101, 242, 61, 242, 58, 242, 19, 242, 14, 242, 233, 241, 230, 241, 195, 241, 195, 241, 156, 241, 155, 241, 126, 241, 119, 241, 93, 241, 84, 241, 56, 241, 56, 241, 23, 241, 29, 241, 250, 240, 255, 240, 224, 240, 223, 240, 199, 240, 198, 240, 171, 240, 172, 240, 147, 240, 147, 240, 125, 240, 120, 240, 103, 240, 100, 240, 81, 240, 81, 240, 58, 240, 59, 240, 38, 240, 42, 240, 21, 240, 23, 240, 3, 240, 6, 240, 243, 239, 246, 239, 226, 239, 225, 239, 214, 239, 209, 239, 200, 239, 195, 239, 185, 239, 183, 239, 171, 239, 171, 239, 158, 239, 159, 239, 146, 239, 148, 239, 135, 239, 137, 239, 125, 239, 126, 239, 115, 239, 116, 239, 105, 239, 107, 239, 98, 239, 95, 239, 90, 239, 88, 239, 80, 239, 82, 239, 72, 239, 74, 239, 65, 239, 68, 239, 56, 239, 62, 239, 54, 239, 57, 239, 48, 239, 52, 239, 42, 239, 45, 239, 40, 239, 36, 239, 41, 239, 34, 239, 34, 239, 32, 239, 28, 239, 29, 239, 27, 239, 28, 239, 22, 239, 27, 239, 19, 239, 27, 239, 18, 239, 21, 239, 19, 239, 16, 239, 20, 239, 15, 239, 23, 239, 15, 239, 20, 239, 15, 239, 18, 239, 19, 239, 15, 239, 18, 239, 17, 239, 20, 239, 18, 239, 22, 239, 18, 239, 20, 239, 21, 239, 23, 239, 21, 239, 28, 239, 20, 239, 26, 239, 26, 239, 27, 239, 29, 239, 31, 239, 31, 239, 35, 239, 36, 239, 36, 239, 40, 239, 40, 239, 41, 239, 42, 239, 42, 239, 48, 239, 45, 239, 51, 239, 52, 239, 51, 239, 60, 239, 54, 239, 63, 239, 60, 239, 69, 239, 68, 239, 74, 239, 73, 239, 80, 239, 75, 239, 86, 239, 81, 239, 88, 239, 89, 239, 92, 239, 92, 239, 104, 239, 96, 239, 111, 239, 103, 239, 113, 239, 111, 239, 117, 239, 117, 239, 126, 239, 125, 239, 130, 239, 132, 239, 138, 239, 141, 239, 144, 239, 145, 239, 152, 239, 148, 239, 164, 239, 155, 239, 170, 239, 161, 239, 178, 239, 172, 239, 185, 239, 182, 239, 190, 239, 189, 239, 198, 239, 199, 239, 207, 239, 207, 239, 214, 239, 212, 239, 224, 239, 223, 239, 231, 239, 231, 239, 241, 239, 241, 239, 247, 239, 248, 239, 255, 239, 1, 240, 9, 240, 11, 240, 17, 240, 22, 240, 26, 240, 29, 240, 37, 240, 38, 240, 45, 240, 50, 240, 53, 240, 59, 240, 63, 240, 67, 240, 73, 240, 78, 240, 82, 240, 86, 240, 94, 240, 91, 240, 110, 240, 102, 240, 119, 240, 113, 240, 126, 240, 124, 240, 134, 240, 135, 240, 147, 240, 145, 240, 158, 240, 153, 240, 167, 240, 165, 240, 178, 240, 176, 240, 189, 240, 184, 240, 203, 240, 197, 240, 209, 240, 208, 240, 220, 240, 221, 240, 231, 240, 228, 240, 244, 240, 240, 240, 255, 240, 0, 241, 5, 241, 9, 241, 17, 241, 21, 241, 31, 241, 33, 241, 39, 241, 41, 241, 54, 241, 49, 241, 69, 241, 60, 241, 79, 241, 76, 241, 88, 241, 90, 241, 98, 241, 102, 241, 111, 241, 113, 241, 124, 241, 124, 241, 135, 241, 137, 241, 146, 241, 149, 241, 159, 241, 158, 241, 172, 241, 168, 241, 186, 241, 178, 241, 201, 241, 194, 241, 211, 241, 206, 241, 223, 241, 217, 241, 236, 241, 233, 241, 245, 241, 248, 241, 255, 241, 2, 242, 14, 242, 16, 242, 26, 242, 26, 242, 41, 242, 40, 242, 51, 242, 52, 242, 65, 242, 66, 242, 80, 242, 78, 242, 91, 242, 89, 242, 62, 20, 59, 20, 60, 20, 59, 20, 60, 20, 58, 20, 60, 20, 57, 20, 58, 20, 60, 20, 55, 20, 61, 20, 54, 20, 59, 20, 56, 20, 56, 20, 58, 20, 54, 20, 57, 20, 55, 20, 54, 20, 58, 20, 52, 20, 57, 20, 52, 20, 56, 20, 52, 20, 55, 20, 53, 20, 53, 20, 52, 20, 54, 20, 51, 20, 54, 20, 51, 20, 51, 20, 52, 20, 51, 20, 51, 20, 51, 20, 49, 20, 53, 20, 46, 20, 55, 20, 44, 20, 54, 20, 46, 20, 50, 20, 49, 20, 46, 20, 51, 20, 46, 20, 48, 20, 48, 20, 46, 20, 48, 20, 46, 20, 45, 20, 47, 20, 46, 20, 45, 20, 46, 20, 45, 20, 44, 20, 46, 20, 44, 20, 44, 20, 45, 20, 42, 20, 44, 20, 43, 20, 43, 20, 44, 20, 41, 20, 43, 20, 41, 20, 43, 20, 40, 20, 42, 20, 40, 20, 41, 20, 42, 20, 39, 20, 40, 20, 40, 20, 39, 20, 40, 20, 40, 20, 234, 19, 239, 19, 154, 19, 159, 19, 73, 19, 77, 19, 253, 18, 251, 18, 174, 18, 172, 18, 94, 18, 94, 18, 16, 18, 13, 18, 195, 17, 193, 17, 115, 17, 115, 17, 38, 17, 35, 17, 218, 16, 213, 16, 140, 16, 138, 16, 61, 16, 62, 16, 239, 15, 241, 15, 164, 15, 165, 15, 86, 15, 88, 15, 10, 15, 11, 15, 191, 14, 190, 14, 114, 14, 115, 14, 38, 14, 37, 14, 218, 13, 218, 13, 140, 13, 143, 13, 63, 13, 65, 13, 245, 12, 245, 12, 167, 12, 169, 12, 90, 12, 91, 12, 15, 12, 12, 12, 194, 11, 192, 11, 115, 11, 115, 11, 37, 11, 34, 11, 216, 10, 210, 10, 136, 10, 133, 10, 53, 10, 55, 10, 225, 9, 231, 9, 144, 9, 147, 9, 63, 9, 65, 9, 232, 8, 239, 8, 144, 8, 152, 8, 58, 8, 61, 8, 227, 7, 227, 7, 134, 7, 134, 7, 40, 7, 39, 7, 196, 6, 197, 6, 92, 6, 96, 6, 237, 5, 243, 5, 122, 5, 129, 5, 0, 5, 2, 5, 123, 4, 122, 4, 226, 3, 225, 3, 38, 3, 36, 3, 45, 2, 43, 2, 230, 254, 229, 254, 117, 253, 116, 253, 175, 252, 172, 252, 22, 252, 18, 252, 150, 251, 149, 251, 39, 251, 43, 251, 202, 250, 205, 250, 117, 250, 118, 250, 41, 250, 39, 250, 229, 249, 225, 249, 164, 249, 160, 249, 102, 249, 104, 249, 45, 249, 51, 249, 249, 248, 0, 249, 198, 248, 206, 248, 153, 248, 161, 248, 111, 248, 116, 248, 74, 248, 74, 248, 36, 248, 36, 248, 255, 247, 0, 248, 222, 247, 221, 247, 188, 247, 190, 247, 159, 247, 158, 247, 132, 247, 127, 247, 103, 247, 102, 247, 75, 247, 76, 247, 52, 247, 48, 247, 30, 247, 25, 247, 6, 247, 6, 247, 237, 246, 241, 246, 217, 246, 221, 246, 198, 246, 200, 246, 182, 246, 182, 246, 163, 246, 165, 246, 146, 246, 149, 246, 131, 246, 132, 246, 115, 246, 118, 246, 100, 246, 103, 246, 89, 246, 85, 246, 80, 246, 72, 246, 67, 246, 61, 246, 52, 246, 50, 246, 44, 246, 37, 246, 35, 246, 24, 246, 26, 246, 17, 246, 15, 246, 9, 246, 6, 246, 254, 245, 254, 245, 248, 245, 245, 245, 243, 245, 235, 245, 237, 245, 229, 245, 230, 245, 223, 245, 222, 245, 218, 245, 217, 245, 213, 245, 212, 245, 209, 245, 207, 245, 202, 245, 204, 245, 197, 245, 201, 245, 195, 245, 194, 245, 193, 245, 192, 245, 188, 245, 191, 245, 185, 245, 187, 245, 184, 245, 183, 245, 183, 245, 181, 245, 181, 245, 182, 245, 177, 245, 182, 245, 175, 245, 182, 245, 173, 245, 181, 245, 173, 245, 179, 245, 174, 245, 177, 245, 177, 245, 176, 245, 177, 245, 176, 245, 177, 245, 179, 245, 178, 245, 176, 245, 182, 245, 176, 245, 185, 245, 178, 245, 184, 245, 181, 245, 183, 245, 185, 245, 186, 245, 184, 245, 191, 245, 184, 245, 194, 245, 188, 245, 193, 245, 193, 245, 195, 245, 199, 245, 197, 245, 200, 245, 201, 245, 202, 245, 206, 245, 207, 245, 207, 245, 210, 245, 211, 245, 216, 245, 215, 245, 219, 245, 220, 245, 222, 245, 226, 245, 223, 245, 232, 245, 226, 245, 237, 245, 232, 245, 239, 245, 240, 245, 242, 245, 247, 245, 248, 245, 250, 245, 254, 245, 255, 245, 3, 246, 5, 246, 9, 246, 10, 246, 14, 246, 17, 246, 19, 246, 20, 246, 28, 246, 26, 246, 32, 246, 34, 246, 37, 246, 40, 246, 47, 246, 43, 246, 52, 246, 52, 246, 56, 246, 62, 246, 60, 246, 67, 246, 69, 246, 74, 246, 78, 246, 77, 246, 87, 246, 81, 246, 95, 246, 91, 246, 100, 246, 101, 246, 104, 246, 108, 246, 113, 246, 114, 246, 122, 246, 120, 246, 131, 246, 127, 246, 138, 246, 136, 246, 146, 246, 146, 246, 150, 246, 156, 246, 159, 246, 161, 246, 170, 246, 167, 246, 180, 246, 174, 246, 188, 246, 183, 246, 196, 246, 195, 246, 199, 246, 204, 246, 209, 246, 211, 246, 219, 246, 219, 246, 226, 246, 229, 246, 237, 246, 237, 246, 247, 246, 246, 246, 254, 246, 255, 246, 7, 247, 10, 247, 16, 247, 17, 247, 26, 247, 26, 247, 37, 247, 36, 247, 44, 247, 43, 247, 56, 247, 50, 247, 67, 247, 61, 247, 75, 247, 74, 247, 83, 247, 83, 247, 95, 247, 90, 247, 106, 247, 101, 247, 114, 247, 111, 247, 124, 247, 122, 247, 134, 247, 130, 247, 143, 247, 141, 247, 154, 247, 151, 247, 166, 247, 159, 247, 176, 247, 171, 247, 184, 247, 183, 247, 194, 247, 194, 247, 206, 247, 202, 247, 219, 247, 212, 247, 228, 247, 224, 247, 236, 247, 237, 247, 247, 247, 248, 247, 2, 248, 2, 248, 14, 248, 13, 248, 23, 248, 25, 248, 34, 248, 36, 248, 46, 248, 47, 248, 57, 248, 57, 248, 70, 248, 69, 248, 79, 248, 80, 248, 90, 248, 92, 248, 103, 248, 102, 248, 115, 248, 114, 248, 126, 248, 127, 248, 135, 248, 140, 248, 147, 248, 153, 248, 159, 248, 163, 248, 172, 248, 175, 248, 184, 248, 185, 248, 196, 248, 199, 248, 207, 248, 212, 248, 220, 248, 221, 248, 235, 248, 233, 248, 246, 248, 245, 248, 3, 249, 3, 249, 15, 249, 15, 249, 28, 249, 28, 249, 39, 249, 40, 249, 52, 249, 53, 249, 66, 249, 64, 249, 80, 249, 75, 249, 96, 249, 86, 249, 109, 249, 102, 249, 120, 249, 116, 249, 132, 249, 127, 249, 146, 249, 144, 249, 156, 249, 161, 249, 167, 249, 176, 249, 182, 249, 187, 249, 197, 249, 200, 249, 211, 249, 213, 249, 224, 249, 226, 249, 239, 249, 241, 249, 253, 249, 252, 249, 13, 250, 11, 250, 26, 250, 27, 250, 40, 250, 41, 250, 57, 250, 51, 250, 74, 250, 65, 250, 89, 250, 84, 250, 99, 250, 100, 250, 114, 250, 117, 250, 129, 250, 133, 250, 144, 250, 148, 250, 161, 250, 163, 250, 176, 250, 178, 250, 192, 250, 192, 250, 209, 250, 205, 250, 227, 250, 223, 250, 243, 250, 241, 250, 0, 251, 1, 251, 16, 251, 18, 251, 34, 251, 33, 251, 54, 251, 51, 251, 70, 251, 70, 251, 85, 251, 86, 251, 104, 251, 104, 251, 123, 251, 123, 251, 140, 251, 143, 251, 158, 251, 161, 251, 177, 251, 179, 251, 196, 251, 197, 251, 216, 251, 219, 251, 234, 251, 236, 251, 1, 252, 255, 251, 23, 252, 20, 252, 43, 252, 41, 252, 65, 252, 61, 252, 86, 252, 82, 252, 110, 252, 108, 252, 129, 252, 130, 252, 153, 252, 154, 252, 179, 252, 176, 252, 206, 252, 201, 252, 230, 252, 227, 252, 2, 253, 0, 253, 30, 253, 25, 253, 60, 253, 56, 253, 86, 253, 82, 253, 121, 253, 112, 253, 157, 253, 153, 253, 188, 253, 191, 253, 224, 253, 225, 253, 14, 254, 12, 254, 56, 254, 55, 254, 107, 254, 110, 254, 166, 254, 173, 254, 254, 254, 4, 255, 128, 255, 131, 255, 196, 0, 195, 0, 44, 1, 40, 1, 113, 1, 113, 1, 167, 1, 169, 1, 214, 1, 214, 1, 0, 2, 254, 1, 40, 2, 40, 2, 72, 2, 71, 2, 108, 2, 103, 2, 139, 2, 135, 2, 164, 2, 166, 2, 188, 2, 192, 2, 219, 2, 216, 2, 247, 2, 240, 2, 13, 3, 6, 3, 34, 3, 30, 3, 54, 3, 53, 3, 76, 3, 76, 3, 96, 3, 94, 3, 116, 3, 115, 3, 134, 3, 138, 3, 149, 3, 157, 3, 167, 3, 172, 3, 187, 3, 187, 3, 204, 3, 208, 3, 215, 3, 225, 3, 231, 3, 240, 3, 250, 3, 251, 3, 14, 4, 9, 4, 29, 4, 25, 4, 42, 4, 42, 4, 53, 4, 55, 4, 68, 4, 69, 4, 81, 4, 82, 4, 96, 4, 96, 4, 110, 4, 105, 4, 125, 4, 118, 4, 137, 4, 132, 4, 147, 4, 148, 4, 156, 4, 161, 4, 167, 4, 174, 4, 179, 4, 183, 4, 192, 4, 194, 4, 203, 4, 206, 4, 212, 4, 219, 4, 222, 4, 231, 4, 233, 4, 239, 4, 245, 4, 249, 4, 1, 5, 0, 5, 13, 5, 10, 5, 22, 5, 24, 5, 28, 5, 33, 5, 41, 5, 41, 5, 50, 5, 52, 5, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 5, 0, 252, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 252, 255, 5, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 252, 255, 5, 0, 252, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 1, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 1, 0, 254, 255, 1, 0, 255, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 255, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 254, 255, 4, 0, 251, 255, 4, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 5, 0, 252, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 5, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 254, 255, 4, 0, 251, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 252, 255, 5, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 254, 255, 4, 0, 251, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 1, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 2, 0, 254, 255, 1, 0, 1, 0, 255, 255, 1, 0, 255, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 1, 0, 255, 255, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 4, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 3, 0, 254, 255, 0, 0, 2, 0, 254, 255, 2, 0, 253, 255, 2, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 254, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 251, 255, 5, 0, 252, 255, 3, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 5, 0, 250, 255, 6, 0, 252, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 254, 255, 255, 255, 4, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 5, 0, 252, 255, 2, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 0, 0, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 252, 255, 4, 0, 254, 255, 0, 0, 2, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 1, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 4, 0, 254, 255, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 1, 0, 252, 255, 6, 0, 250, 255, 5, 0, 252, 255, 3, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 254, 255, 4, 0, 251, 255, 5, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 254, 255, 4, 0, 252, 255, 3, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 4, 0, 251, 255, 4, 0, 254, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 2, 0, 252, 255, 5, 0, 251, 255, 3, 0, 255, 255, 0, 0, 1, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 2, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 254, 255, 3, 0, 254, 255, 2, 0, 255, 255, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 255, 255, 3, 0, 252, 255, 3, 0, 255, 255, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 251, 255, 6, 0, 251, 255, 2, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 5, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 5, 0, 251, 255, 3, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 251, 255, 5, 0, 252, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 3, 0, 255, 255, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 1, 0, 255, 255, 255, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 5, 0, 250, 255, 6, 0, 251, 255, 4, 0, 254, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 0, 0, 255, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 1, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 1, 0, 253, 255, 3, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 0, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 0, 0, 1, 0, 253, 255, 5, 0, 251, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 251, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 255, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 4, 0, 250, 255, 6, 0, 251, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 250, 255, 7, 0, 249, 255, 6, 0, 251, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 253, 255, 5, 0, 250, 255, 6, 0, 251, 255, 4, 0, 253, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 5, 0, 251, 255, 5, 0, 251, 255, 5, 0, 251, 255, 4, 0, 255, 255, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 1, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 5, 0, 250, 255, 4, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 5, 0, 250, 255, 5, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 4, 0, 251, 255, 4, 0, 254, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 2, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 3, 0, 253, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 1, 0, 253, 255, 5, 0, 250, 255, 5, 0, 253, 255, 2, 0, 255, 255, 0, 0, 255, 255, 2, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 252, 255, 5, 0, 252, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 4, 0, 251, 255, 5, 0, 251, 255, 5, 0, 252, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 255, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 254, 255, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 1, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 255, 255, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 3, 0, 255, 255, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 253, 255, 4, 0, 252, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 253, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 252, 255, 5, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 250, 255, 5, 0, 254, 255, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 5, 0, 251, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 2, 0, 253, 255, 3, 0, 252, 255, 5, 0, 252, 255, 3, 0, 253, 255, 2, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 3, 0, 251, 255, 5, 0, 252, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 0, 0, 0, 0, 255, 255, 1, 0, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 2, 0, 253, 255, 3, 0, 252, 255, 5, 0, 252, 255, 3, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 1, 0, 251, 255, 6, 0, 251, 255, 3, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 0, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 253, 255, 5, 0, 250, 255, 5, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 252, 255, 6, 0, 250, 255, 5, 0, 252, 255, 2, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 4, 0, 252, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 0, 0, 2, 0, 252, 255, 6, 0, 250, 255, 4, 0, 254, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 3, 0, 251, 255, 5, 0, 252, 255, 3, 0, 254, 255, 2, 0, 252, 255, 5, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 4, 0, 252, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 252, 255, 5, 0, 252, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 253, 255, 2, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 3, 0, 254, 255, 2, 0, 252, 255, 5, 0, 252, 255, 3, 0, 255, 255, 254, 255, 3, 0, 253, 255, 4, 0, 253, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 251, 255, 7, 0, 249, 255, 5, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 254, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 255, 255, 3, 0, 253, 255, 1, 0, 1, 0, 253, 255, 3, 0, 255, 255, 255, 255, 3, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 2, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 0, 0, 254, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 253, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 2, 0, 253, 255, 3, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 1, 0, 0, 0, 1, 0, 254, 255, 2, 0, 253, 255, 3, 0, 255, 255, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 3, 0, 251, 255, 5, 0, 252, 255, 3, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 0, 0, 1, 0, 254, 255, 4, 0, 251, 255, 5, 0, 251, 255, 3, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 253, 255, 5, 0, 251, 255, 5, 0, 250, 255, 6, 0, 252, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 4, 0, 251, 255, 5, 0, 251, 255, 5, 0, 253, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 6, 0, 249, 255, 7, 0, 251, 255, 3, 0, 255, 255, 254, 255, 4, 0, 252, 255, 4, 0, 253, 255, 0, 0, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 255, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 0, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 255, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 255, 255, 3, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 255, 255, 1, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 0, 0, 1, 0, 252, 255, 6, 0, 250, 255, 6, 0, 251, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 2, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 252, 255, 6, 0, 249, 255, 7, 0, 251, 255, 2, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 254, 255, 3, 0, 254, 255, 0, 0, 3, 0, 250, 255, 6, 0, 252, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 252, 255, 6, 0, 249, 255, 6, 0, 253, 255, 0, 0, 2, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 1, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 254, 255, 2, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 3, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 252, 255, 5, 0, 252, 255, 2, 0, 255, 255, 0, 0, 2, 0, 253, 255, 2, 0, 254, 255, 2, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 3, 0, 253, 255, 1, 0, 0, 0, 0, 0, 1, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 1, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 2, 0, 252, 255, 5, 0, 250, 255, 5, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 1, 0, 253, 255, 4, 0, 251, 255, 4, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 3, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 253, 255, 1, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 2, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 252, 255, 5, 0, 252, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 0, 0, 1, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 252, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 0, 0, 1, 0, 255, 255, 2, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 251, 255, 6, 0, 251, 255, 4, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 2, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 1, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 255, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 4, 0, 251, 255, 4, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 3, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 2, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 0, 0, 0, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 251, 255, 4, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 2, 0, 0, 0, 254, 255, 4, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 2, 0, 253, 255, 3, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 0, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 3, 0, 252, 255, 3, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 255, 255, 1, 0, 1, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 3, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 3, 0, 253, 255, 3, 0, 253, 255, 4, 0, 252, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 6, 0, 250, 255, 4, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 4, 0, 251, 255, 5, 0, 251, 255, 5, 0, 252, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 252, 255, 5, 0, 251, 255, 5, 0, 251, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 4, 0, 251, 255, 4, 0, 254, 255, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 252, 255, 6, 0, 250, 255, 4, 0, 255, 255, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 3, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 253, 255, 0, 0, 2, 0, 253, 255, 3, 0, 255, 255, 254, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 3, 0, 252, 255, 3, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 5, 0, 250, 255, 5, 0, 253, 255, 1, 0, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 253, 255, 4, 0, 253, 255, 2, 0, 255, 255, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 4, 0, 251, 255, 4, 0, 254, 255, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 1, 0, 254, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 255, 255, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 1, 0, 253, 255, 5, 0, 250, 255, 6, 0, 251, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 5, 0, 251, 255, 4, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 3, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 0, 0, 255, 255, 1, 0, 255, 255, 255, 255, 3, 0, 254, 255, 0, 0, 2, 0, 252, 255, 5, 0, 251, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 251, 255, 4, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 255, 255, 0, 0, 0, 0, 1, 0, 253, 255, 5, 0, 250, 255, 7, 0, 249, 255, 5, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 1, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 254, 255, 0, 0, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 254, 255, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 251, 255, 6, 0, 250, 255, 4, 0, 253, 255, 2, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 3, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 253, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 4, 0, 252, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 252, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 4, 0, 254, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 0, 0, 1, 0, 0, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 254, 255, 4, 0, 251, 255, 5, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 255, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 4, 0, 251, 255, 5, 0, 251, 255, 5, 0, 252, 255, 2, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 252, 255, 5, 0, 252, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 0, 0, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 254, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 255, 255, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 254, 255, 4, 0, 251, 255, 4, 0, 255, 255, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 2, 0, 253, 255, 3, 0, 255, 255, 255, 255, 2, 0, 254, 255, 0, 0, 2, 0, 254, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 1, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 3, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 253, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 0, 0, 2, 0, 253, 255, 3, 0, 253, 255, 2, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 3, 0, 252, 255, 5, 0, 252, 255, 1, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 0, 0, 2, 0, 252, 255, 4, 0, 254, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 255, 255, 3, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 0, 0, 0, 0, 255, 255, 1, 0, 254, 255, 4, 0, 253, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 2, 0, 255, 255, 1, 0, 0, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 1, 0, 254, 255, 1, 0, 255, 255, 0, 0, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 4, 0, 252, 255, 4, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 253, 255, 3, 0, 254, 255, 2, 0, 255, 255, 255, 255, 2, 0, 254, 255, 1, 0, 1, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 3, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 255, 255, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 1, 0, 255, 255, 1, 0, 254, 255, 2, 0, 255, 255, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 4, 0, 251, 255, 5, 0, 252, 255, 4, 0, 253, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 254, 255, 4, 0, 251, 255, 5, 0, 252, 255, 2, 0, 0, 0, 255, 255, 1, 0, 0, 0, 254, 255, 3, 0, 253, 255, 3, 0, 253, 255, 3, 0, 253, 255, 2, 0, 255, 255, 1, 0, 254, 255, 3, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 0, 0, 2, 0, 253, 255, 3, 0, 255, 255, 254, 255, 3, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 3, 0, 252, 255, 4, 0, 252, 255, 4, 0, 252, 255, 3, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 253, 255, 5, 0, 250, 255, 6, 0, 252, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 3, 0, 252, 255, 4, 0, 253, 255, 1, 0, 1, 0, 254, 255, 2, 0, 254, 255, 2, 0, 255, 255, 0, 0, 0, 0, 255, 255, 2, 0, 254, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 2, 0, 253, 255, 3, 0, 253, 255, 4, 0, 252, 255, 2, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 2, 0, 0, 0, 254, 255, 3, 0, 254, 255, 0, 0, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 0, 0, 255, 255, 1, 0, 255, 255, 2, 0, 253, 255, 4, 0, 252, 255, 2, 0, 0, 0, 255, 255, 2, 0, 254, 255, 1, 0, 255, 255, 1, 0, 255, 255, 1, 0 )
format = 1
+[sub_resource type="OccluderPolygon2D" id=31]
+polygon = PoolVector2Array( -5, -2, -5, 2, -3, 4, 4, 4, 4, -4, -3, -4 )
+
[node name="EnemyLaser" instance=ExtResource( 1 )]
z_index = 0
mass = 400.0
[node name="AnimatedSprite" parent="." index="0"]
frames = SubResource( 14 )
-frame = 5
+frame = 1
[node name="CollisionShape2D" parent="." index="1"]
-shape = SubResource( 15 )
+shape = SubResource( 30 )
[node name="AudioStreamPlayer" parent="." index="3"]
stream = SubResource( 29 )
[node name="LightOccluder2D" parent="." index="4"]
-position = Vector2( 0, 2 )
scale = Vector2( 3, 3 )
+occluder = SubResource( 31 )
diff --git a/bullets/scenes/Fireball.tscn b/bullets/scenes/Fireball.tscn
index e9c6c15..94a1aa2 100644
--- a/bullets/scenes/Fireball.tscn
+++ b/bullets/scenes/Fireball.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=23 format=2]
+[gd_scene load_steps=24 format=2]
[ext_resource path="res://bullets/scenes/EnemyLaser.tscn" type="PackedScene" id=1]
[ext_resource path="res://sprites/enemylaser-sheet.png" type="Texture" id=2]
@@ -105,7 +105,10 @@ animations = [ {
[sub_resource type="RectangleShape2D" id=34]
resource_local_to_scene = true
-extents = Vector2( 6.5, 5 )
+extents = Vector2( 5.5, 4.5 )
+
+[sub_resource type="OccluderPolygon2D" id=35]
+polygon = PoolVector2Array( -6, -3.33333, -6, 2, -3, 5, 5, 5, 5, -6, -3.33333, -6 )
[node name="Fireball" instance=ExtResource( 1 )]
mass = 1000.0
@@ -114,10 +117,12 @@ linear_velocity = Vector2( -60, 0 )
[node name="AnimatedSprite" parent="." index="0"]
frames = SubResource( 33 )
animation = "New Anim 1"
+frame = 0
[node name="CollisionShape2D" parent="." index="1"]
-position = Vector2( -2.5, -1.19209e-07 )
+position = Vector2( -3.5, -0.5 )
shape = SubResource( 34 )
[node name="LightOccluder2D" parent="." index="4"]
position = Vector2( -3, 0 )
+occluder = SubResource( 35 )
diff --git a/bullets/scenes/Laser.tscn b/bullets/scenes/Laser.tscn
index 4303288..c8efd0d 100644
--- a/bullets/scenes/Laser.tscn
+++ b/bullets/scenes/Laser.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=23 format=2]
+[gd_scene load_steps=22 format=2]
[ext_resource path="res://sounds/Laser.wav" type="AudioStream" id=2]
[ext_resource path="res://sprites/Laser-Sheet.png" type="Texture" id=3]
@@ -91,15 +91,11 @@ animations = [ {
"speed": 20.0
} ]
-[sub_resource type="RectangleShape2D" id=1]
-resource_local_to_scene = true
-extents = Vector2( 4.5, 4 )
-
-[sub_resource type="CanvasItemMaterial" id=33]
-blend_mode = 1
+[sub_resource type="CapsuleShape2D" id=34]
+radius = 5.0
+height = 5.0
[node name="Laser" type="RigidBody2D" groups=["pbullet"]]
-visible = false
show_behind_parent = true
light_mask = 32769
position = Vector2( 0, 1 )
@@ -115,19 +111,22 @@ spreadmaxpos = 3
initial_velocity = 400
trail_rare = false
rarity_max = 2
+modulate_glow = true
[node name="Laser" type="AnimatedSprite" parent="."]
+unique_name_in_owner = true
frames = SubResource( 15 )
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2( 0.5, 0 )
-shape = SubResource( 1 )
+shape = SubResource( 34 )
[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."]
position = Vector2( -1.19209e-07, 2.98023e-08 )
scale = Vector2( 0.2, 0.2 )
[node name="LaserSound" type="AudioStreamPlayer" parent="."]
+unique_name_in_owner = true
stream = ExtResource( 2 )
volume_db = -20.0
autoplay = true
@@ -137,11 +136,14 @@ autoplay = true
[node name="Timer2" type="Timer" parent="."]
[node name="Light" type="Light2D" parent="."]
-material = SubResource( 33 )
+unique_name_in_owner = true
scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 7 )
color = Color( 0, 0.6, 1, 0.733333 )
energy = 2.0
shadow_enabled = true
+shadow_buffer_size = 1024
+shadow_filter = 2
+shadow_filter_smooth = 2.0
[connection signal="screen_exited" from="VisibilityNotifier2D" to="." method="_on_VisibilityNotifier2D_screen_exited"]
diff --git a/bullets/scenes/missile.tscn b/bullets/scenes/missile.tscn
index 6e4d581..04138ee 100644
--- a/bullets/scenes/missile.tscn
+++ b/bullets/scenes/missile.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=7 format=2]
+[gd_scene load_steps=8 format=2]
[ext_resource path="res://sounds/missile.wav" type="AudioStream" id=2]
[ext_resource path="res://effects/Trail.tscn" type="PackedScene" id=3]
@@ -6,6 +6,10 @@
[ext_resource path="res://bullets/scripts/missile.gd" type="Script" id=5]
[ext_resource path="res://sprites/spot.png" type="Texture" id=6]
+[sub_resource type="CapsuleShape2D" id=3]
+radius = 6.0
+height = 6.0
+
[sub_resource type="CanvasItemMaterial" id=2]
blend_mode = 1
@@ -23,10 +27,10 @@ TURN_STRENGTH = 75.0
position = Vector2( -5, 0 )
THICKNESS = 3.0
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
-rotation = -3.14159
+[node name="CollisionPolygon2D" type="CollisionShape2D" parent="."]
+rotation = 1.5708
scale = Vector2( 1, -1 )
-polygon = PoolVector2Array( -7, 1, -6, 2, 3, 2, 3, 3, 4, 4, 5, 4, 7, 2, 7, -2, 5, -4, 4, -4, 3, -3, 3, -2, -6, -2, -7, -1 )
+shape = SubResource( 3 )
[node name="LaserSound" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 2 )
diff --git a/bullets/scripts/Laser.gd b/bullets/scripts/Laser.gd
index de0c1c1..8006ea9 100644
--- a/bullets/scripts/Laser.gd
+++ b/bullets/scripts/Laser.gd
@@ -22,46 +22,54 @@ const HitEffect = preload("res://effects/HitEffect.tscn")
const Trail = preload("res://effects/Trail.tscn")
var choosing = 0
+onready var light = $"%Light"
+onready var anims: AnimatedSprite = $"%Laser"
+onready var laser_sound: AudioStreamPlayer = $"%LaserSound"
+
func _ready():
- yield(get_tree().create_timer(.1), "timeout")
+ set_lights(ProjectSettings.get_setting("global/bullet_lights"))
+ yield(get_tree(), "idle_frame")
visible = true
var direction = Vector2(initial_velocity, rand_range(spreadmaxneg, spreadmaxpos))
apply_impulse(Vector2.ZERO, direction)
rotation = direction.angle()
- $LaserSound.pitch_scale = randf() + 0.4
- $LaserSound.play()
- $Laser.playing = true
randomize()
- var rand = rand_range(minscalingrand, maxscalingrand)
+ laser_sound.pitch_scale = randf() + 0.4
+ #warning-ignore: narrowing_conversion
+ anims.frame = rand_range(0, 13)
+
+ laser_sound.play()
+ anims.play()
if powered_up:
scalingrand = true
if scalingrand:
+ var rand = rand_range(minscalingrand, maxscalingrand)
var to_scale = Vector2(rand, rand)
if powered_up:
to_scale += Vector2(1.5, 1.5)
- $Laser.scale = to_scale
+ anims.scale = to_scale
$Collision.scale = to_scale
if scale_glow:
- $Light.texture_scale += to_scale.x / 3
- var animatedSprite = $Laser
- animatedSprite.frame = rand_range(0, 13)
+ light.texture_scale += to_scale.x / 3
if trail:
if trail_rare:
var chance = rand_range(rarity_min, rarity_max)
chance = round(chance)
if chance == 1:
var trailinstance = Trail.instance()
- self.add_child(trailinstance)
+ add_child(trailinstance)
if powered_up:
+ var rand = rand_range(minscalingrand, maxscalingrand)
trailinstance.THICKNESS = rand * 2
else:
var trailinstance = Trail.instance()
- self.add_child(trailinstance)
+ add_child(trailinstance)
if powered_up:
+ var rand = rand_range(minscalingrand, maxscalingrand)
trailinstance.THICKNESS = rand * 2
@@ -74,5 +82,12 @@ func _on_VisibilityNotifier2D_screen_exited():
func _physics_process(delta):
- if modulate_glow:
- $Light.colors.a -= modulate_amount * delta
+ if light.enabled:
+ light.color.a -= modulate_amount * delta
+ if light.color.a < 0:
+ light.enabled = false
+ set_physics_process(false)
+
+
+func set_lights(enabled: bool) -> void:
+ light.enabled = enabled
diff --git a/bullets/scripts/missile.gd b/bullets/scripts/missile.gd
index 32d136d..a65a99f 100644
--- a/bullets/scripts/missile.gd
+++ b/bullets/scripts/missile.gd
@@ -10,6 +10,7 @@ var powered_up
func start(_target):
+ $Light.visible = ProjectSettings.get_setting("global/bullet_lights")
TARGET = _target
if is_instance_valid(TARGET):
target_last_position = TARGET.global_position
@@ -19,15 +20,10 @@ func start(_target):
func _physics_process(delta: float) -> void:
if is_instance_valid(TARGET):
- var target_position = (
- TARGET.global_position
- + (TARGET.global_position - target_last_position) / delta
- )
+ var target_position = TARGET.global_position + (TARGET.global_position - target_last_position) / delta
target_last_position = TARGET.global_position
var direction: Vector2 = global_position.direction_to(target_position - linear_velocity)
- var attenuate_turning: float = global_transform.y.dot(
- direction.rotated(angular_velocity * delta)
- )
+ var attenuate_turning: float = global_transform.y.dot(direction.rotated(angular_velocity * delta))
apply_torque_impulse(TURN_STRENGTH * attenuate_turning)
var apply_thrust := Vector2()
if linear_velocity.length() < TERMINAL_VELOCITY:
diff --git a/effects/Game.gd b/effects/Game.gd
index e9e4526..3f04590 100644
--- a/effects/Game.gd
+++ b/effects/Game.gd
@@ -21,8 +21,7 @@ func transition(to = null):
$transitionAnimation.stop(true)
$transitionAnimation.play("fadeinout")
if to:
- yield(Game, "transition_halfway")
- # warning-ignore:return_value_discarded
+ yield(self, "transition_halfway")
get_tree().change_scene(to)
set_keyboard(keyboard)
if OS.has_touchscreen_ui_hint():
@@ -45,7 +44,6 @@ func _process(_delta):
func turn_off():
- yield(get_tree().create_timer(.3), "timeout")
get_tree().call_group("keyboard", "hide")
get_tree().call_group("gamepad", "hide")
get_tree().call_group("not_mobile", "hide")
diff --git a/enemy/scripts/Drone.gd b/enemy/scripts/Drone.gd
index 76fd812..76516ba 100644
--- a/enemy/scripts/Drone.gd
+++ b/enemy/scripts/Drone.gd
@@ -48,9 +48,7 @@ func _integrate_forces(state):
var start = $turret.rotation
var angle_to_target = Vector2(1, 0).rotated(start).angle_to(vector_to_player)
var end = start + angle_to_target
- $Tween.interpolate_property(
- $turret, "rotation", start, end, 0.1, Tween.TRANS_QUAD, Tween.EASE_OUT
- )
+ $Tween.interpolate_property($turret, "rotation", start, end, 0.1, Tween.TRANS_QUAD, Tween.EASE_OUT)
$Tween.start()
if distance_to_player > 40:
diff --git a/enemy/scripts/EnemyClass.gd b/enemy/scripts/EnemyClass.gd
index 8f08e9d..9970a08 100644
--- a/enemy/scripts/EnemyClass.gd
+++ b/enemy/scripts/EnemyClass.gd
@@ -46,26 +46,17 @@ func damage():
func _on_Enemy_body_entered(body):
- if not body.is_in_group("laser"):
- body.create_hit_effect()
- if not body.is_in_group("Player"):
- body.queue_free()
- damage()
+ body.create_hit_effect()
+ if not body.is_in_group("Player"):
+ body.queue_free()
+ damage()
func _on_Enemy_area_entered(area):
- if not area.is_in_group("laser"):
- if not area.is_in_group("Player"):
- area.create_hit_effect()
- area.queue_free()
- damage()
-
- elif area.is_in_group("laser"):
- self.visible = true
- var beam = get_overlapping_bodies()
- if beam != null:
- yield(get_tree().create_timer(.4), "timeout")
- damage()
+ if not area.is_in_group("Player"):
+ area.create_hit_effect()
+ area.queue_free()
+ damage()
func add_to_score():
@@ -101,12 +92,6 @@ func _on_sidestep_timeout():
elif target_destination.y < 10:
target_destination.y = 10
tween.interpolate_property(
- self,
- "position",
- global_position,
- target_destination,
- 1,
- Tween.TRANS_LINEAR,
- Tween.EASE_IN_OUT
+ self, "position", global_position, target_destination, 1, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT
)
tween.start()
diff --git a/other/Save&Load.gd b/other/Save&Load.gd
index d3a7729..f32c6bd 100644
--- a/other/Save&Load.gd
+++ b/other/Save&Load.gd
@@ -2,9 +2,7 @@ extends Node
const SAVE_DATA_PATH = "user://save_data.json"
-var default_save_data = {
- highscore = 0, unlocked1 = true, unlocked2 = false, unlocked3 = false, unlocked4 = false
-}
+var default_save_data = {highscore = 0, unlocked1 = true, unlocked2 = false, unlocked3 = false, unlocked4 = false}
func save_data_to_file(save_data):
diff --git a/player/scripts/ShipArea2d.gd b/player/scripts/ShipArea2d.gd
index 1a53336..f894df2 100644
--- a/player/scripts/ShipArea2d.gd
+++ b/player/scripts/ShipArea2d.gd
@@ -19,10 +19,7 @@ func find_target():
if units.size() > 0:
var closest = units[0]
for unit in units:
- if (
- position.distance_to(unit.global_position)
- < position.distance_to(closest.global_position)
- ):
+ if position.distance_to(unit.global_position) < position.distance_to(closest.global_position):
closest = unit
self.target = closest
else:
diff --git a/player/scripts/playerstats.gd b/player/scripts/playerstats.gd
index 28fc98f..ab5745b 100644
--- a/player/scripts/playerstats.gd
+++ b/player/scripts/playerstats.gd
@@ -10,7 +10,7 @@ var rockets = true
var lasers = true
var flak = true
var gun = "lasers"
-var power = false setget set_power
+var power = false setget set_powerup
export(int) var max_hp = 3 setget set_max_health
var hp = max_hp setget set_health
var recent_score: int
@@ -37,7 +37,8 @@ func _ready():
self.hp = max_hp
-func set_power(new_power):
+func set_powerup(new_power):
power = new_power
- yield(get_tree().create_timer(8), "timeout")
- power = false
+ if power:
+ var t = get_tree().create_timer(8)
+ t.connect("timeout", self, "set_powerup", [false])
diff --git a/project.godot b/project.godot
index e1dc4c7..38ac450 100644
--- a/project.godot
+++ b/project.godot
@@ -94,6 +94,10 @@ formats/zstd/compression_level=22
formats/zlib/compression_level=9
formats/gzip/compression_level=9
+[debug]
+
+gdscript/warnings/return_value_discarded=false
+
[display]
window/size/width=320
@@ -113,6 +117,10 @@ window/stretch/aspect="expand"
enabled=PoolStringArray( )
+[global]
+
+bullet_lights=true
+
[importer_defaults]
texture={
diff --git a/ui/buttontheme.tres b/ui/buttontheme.tres
index c56ea05..712964e 100644
--- a/ui/buttontheme.tres
+++ b/ui/buttontheme.tres
@@ -68,6 +68,8 @@ Button/styles/focus = ExtResource( 2 )
Button/styles/hover = SubResource( 2 )
Button/styles/normal = SubResource( 2 )
Button/styles/pressed = SubResource( 2 )
+CheckBox/constants/check_vadjust = 2
+CheckBox/constants/hseparation = 0
CheckBox/icons/checked = ExtResource( 5 )
CheckBox/icons/unchecked = ExtResource( 4 )
CheckBox/styles/focus = ExtResource( 2 )
diff --git a/ui/scenes/StartMenu.tscn b/ui/scenes/StartMenu.tscn
index 1b4ae6c..dc6c15b 100644
--- a/ui/scenes/StartMenu.tscn
+++ b/ui/scenes/StartMenu.tscn
@@ -2165,9 +2165,6 @@ theme = ExtResource( 7 )
text = "options = "
align = 1
valign = 2
-__meta__ = {
-"_edit_use_anchors_": false
-}
[node name="Inputs" type="Sprite" parent="settings"]
position = Vector2( 119, 10 )
diff --git a/ui/scenes/pause.tscn b/ui/scenes/pause.tscn
index 64db343..2d865f1 100644
--- a/ui/scenes/pause.tscn
+++ b/ui/scenes/pause.tscn
@@ -1,9 +1,7 @@
-[gd_scene load_steps=6 format=2]
+[gd_scene load_steps=4 format=2]
-[ext_resource path="res://sprites/stop.png" type="Texture" id=1]
[ext_resource path="res://ui/scripts/pausemenu.gd" type="Script" id=2]
[ext_resource path="res://ui/buttontheme.tres" type="Theme" id=3]
-[ext_resource path="res://fonts/fonty.tres" type="DynamicFont" id=4]
[ext_resource path="res://ui/scenes/settings.tscn" type="PackedScene" id=6]
[node name="pause" type="Control"]
@@ -11,33 +9,21 @@ pause_mode = 2
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 2 )
-__meta__ = {
-"_edit_use_anchors_": false
-}
-[node name="ColorRect" type="ColorRect" parent="."]
+[node name="Background" type="ColorRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0, 0, 0, 0.611765 )
-__meta__ = {
-"_edit_use_anchors_": false
-}
-[node name="pause_icon" type="Sprite" parent="ColorRect"]
-position = Vector2( 303, 164 )
-texture = ExtResource( 1 )
-
-[node name="VBoxContainer" type="VBoxContainer" parent="ColorRect"]
+[node name="VBoxContainer" type="VBoxContainer" parent="Background"]
anchor_bottom = 1.0
margin_left = 14.0
margin_top = 16.0
margin_right = 88.0
margin_bottom = -60.0
-__meta__ = {
-"_edit_use_anchors_": false
-}
-[node name="mainmenu" type="Button" parent="ColorRect/VBoxContainer"]
+[node name="MainMenuButton" type="Button" parent="Background/VBoxContainer"]
+unique_name_in_owner = true
margin_right = 74.0
margin_bottom = 14.0
theme = ExtResource( 3 )
@@ -47,7 +33,7 @@ __meta__ = {
"_edit_use_anchors_": false
}
-[node name="options" type="Button" parent="ColorRect/VBoxContainer"]
+[node name="options" type="Button" parent="Background/VBoxContainer"]
margin_top = 18.0
margin_right = 74.0
margin_bottom = 32.0
@@ -58,7 +44,7 @@ __meta__ = {
"_edit_use_anchors_": false
}
-[node name="exit" type="Button" parent="ColorRect/VBoxContainer"]
+[node name="exit" type="Button" parent="Background/VBoxContainer"]
margin_top = 36.0
margin_right = 74.0
margin_bottom = 50.0
@@ -69,34 +55,14 @@ __meta__ = {
"_edit_use_anchors_": false
}
-[node name="settings" parent="ColorRect" instance=ExtResource( 6 )]
+[node name="settings" parent="Background" instance=ExtResource( 6 )]
+unique_name_in_owner = true
visible = false
-
-[node name="pause1" type="Label" parent="ColorRect"]
-margin_left = 16.0
-margin_top = 155.0
-margin_right = 288.0
-margin_bottom = 172.0
-custom_fonts/font = ExtResource( 4 )
-text = "Paused"
-align = 2
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="pause2" type="Label" parent="ColorRect"]
-margin_left = 28.0
-margin_top = 133.0
-margin_right = 310.0
-margin_bottom = 150.0
-custom_fonts/font = ExtResource( 4 )
-text = "Press esc to unpause"
__meta__ = {
"_edit_use_anchors_": false
}
-[connection signal="gui_input" from="ColorRect/VBoxContainer/mainmenu" to="." method="_on_mainmenu_gui_input"]
-[connection signal="gui_input" from="ColorRect/VBoxContainer/options" to="." method="_on_options_gui_input"]
-[connection signal="gui_input" from="ColorRect/VBoxContainer/exit" to="." method="_on_exit_gui_input"]
-[connection signal="apply_button_pressed" from="ColorRect/settings" to="." method="_on_settings_apply_button_pressed"]
-[connection signal="back" from="ColorRect/settings" to="." method="_on_settings_back"]
+[connection signal="pressed" from="Background/VBoxContainer/MainMenuButton" to="." method="_on_MainMenuButton_pressed"]
+[connection signal="pressed" from="Background/VBoxContainer/options" to="." method="_on_options_pressed"]
+[connection signal="pressed" from="Background/VBoxContainer/exit" to="." method="_on_exit_pressed"]
+[connection signal="back" from="Background/settings" to="." method="_on_settings_back"]
diff --git a/ui/scenes/settings.tscn b/ui/scenes/settings.tscn
index c220121..ba3c0fb 100644
--- a/ui/scenes/settings.tscn
+++ b/ui/scenes/settings.tscn
@@ -1,15 +1,13 @@
-[gd_scene load_steps=13 format=2]
+[gd_scene load_steps=11 format=2]
[ext_resource path="res://ui/scripts/settings.gd" type="Script" id=1]
[ext_resource path="res://sprites/stop.png" type="Texture" id=2]
-[ext_resource path="res://fonts/fonty.tres" type="DynamicFont" id=4]
[ext_resource path="res://sprites/stop-2.png" type="Texture" id=5]
[ext_resource path="res://ui/scripts/Volume.gd" type="Script" id=6]
[ext_resource path="res://ui/scenes/UiSettingContainer.tscn" type="PackedScene" id=7]
[ext_resource path="res://ui/scenes/UIResolutionSelector.tscn" type="PackedScene" id=8]
[ext_resource path="res://ui/buttontheme.tres" type="Theme" id=9]
[ext_resource path="res://ui/new_styleboxflat.tres" type="StyleBox" id=10]
-[ext_resource path="res://effects/Stars.tscn" type="PackedScene" id=12]
[sub_resource type="StyleBoxFlat" id=1]
bg_color = Color( 0.898039, 0.898039, 0.898039, 0.854902 )
@@ -40,58 +38,30 @@ pause_mode = 2
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 1 )
-__meta__ = {
-"_edit_use_anchors_": false
-}
-[node name="ColorRect" type="ColorRect" parent="."]
+[node name="Backgroud" type="ColorRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
-color = Color( 0, 0, 0, 1 )
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="Stars" parent="ColorRect" instance=ExtResource( 12 )]
-emitting = false
-
-[node name="label" type="Label" parent="ColorRect"]
-margin_left = 90.0
-margin_top = 36.0
-margin_right = 162.0
-margin_bottom = 51.0
-theme = ExtResource( 9 )
-text = "Resolutioេn​តថឹ"
-__meta__ = {
-"_edit_use_anchors_": false
-}
+color = Color( 0, 0, 0, 0.611765 )
-[node name="VolumeLabel" type="Label" parent="ColorRect"]
-margin_left = 120.0
-margin_top = 17.0
+[node name="SettingsWindow" type="VBoxContainer" parent="Backgroud"]
+margin_left = 16.0
+margin_top = 16.0
margin_right = 173.0
-margin_bottom = 32.0
+margin_bottom = 128.0
theme = ExtResource( 9 )
-custom_colors/font_color = Color( 1, 0.929412, 0.764706, 1 )
-text = "volume"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-[node name="VBoxContainer" type="VBoxContainer" parent="ColorRect"]
-margin_left = 16.0
-margin_top = 16.0
-margin_right = 111.0
-margin_bottom = 127.0
-__meta__ = {
-"_edit_use_anchors_": false
-}
+[node name="VolumeBox" type="HBoxContainer" parent="Backgroud/SettingsWindow"]
+margin_right = 157.0
+margin_bottom = 16.0
+custom_constants/separation = 10
-[node name="VolumeSlider" type="HSlider" parent="ColorRect/VBoxContainer"]
-margin_right = 95.0
+[node name="VolumeSlider" type="HSlider" parent="Backgroud/SettingsWindow/VolumeBox"]
+margin_right = 99.0
margin_bottom = 16.0
-focus_neighbour_top = NodePath("../Back")
-focus_neighbour_bottom = NodePath("../UIResolutionSelector")
+focus_neighbour_top = NodePath("../../BackButton")
+focus_neighbour_bottom = NodePath("../../ResolutionBox/UIResolutionSelector")
+size_flags_horizontal = 3
custom_icons/grabber_highlight = ExtResource( 5 )
custom_icons/grabber = ExtResource( 2 )
custom_styles/slider = SubResource( 1 )
@@ -104,80 +74,86 @@ __meta__ = {
"_edit_use_anchors_": false
}
-[node name="UIResolutionSelector" parent="ColorRect/VBoxContainer" instance=ExtResource( 8 )]
+[node name="VolumeLabel" type="Label" parent="Backgroud/SettingsWindow/VolumeBox"]
+margin_left = 109.0
+margin_top = 1.0
+margin_right = 157.0
+margin_bottom = 15.0
+theme = ExtResource( 9 )
+custom_colors/font_color = Color( 1, 0.929412, 0.764706, 1 )
+text = "volume"
+
+[node name="ResolutionBox" type="HBoxContainer" parent="Backgroud/SettingsWindow"]
margin_top = 20.0
-margin_right = 67.0
+margin_right = 157.0
margin_bottom = 34.0
-focus_neighbour_top = NodePath("../VolumeSlider")
-focus_neighbour_bottom = NodePath("../fullscreen")
+
+[node name="UIResolutionSelector" parent="Backgroud/SettingsWindow/ResolutionBox" instance=ExtResource( 8 )]
+margin_right = 67.0
+margin_bottom = 14.0
+focus_neighbour_top = NodePath("../../VolumeBox/VolumeSlider")
+focus_neighbour_bottom = NodePath("../../fullscreen")
size_flags_horizontal = 0
+theme = null
text = "640x300"
items = [ "640x300", null, false, 0, null, "1280x720", null, false, 1, null, "1920x1080", null, false, 2, null ]
selected = 0
-[node name="fullscreen" parent="ColorRect/VBoxContainer" instance=ExtResource( 7 )]
+[node name="ResolutionLabel" type="Label" parent="Backgroud/SettingsWindow/ResolutionBox"]
+margin_left = 71.0
+margin_right = 143.0
+margin_bottom = 14.0
+theme = ExtResource( 9 )
+text = "Resolutioេn​តថឹ"
+
+[node name="fullscreen" parent="Backgroud/SettingsWindow" instance=ExtResource( 7 )]
margin_top = 38.0
-margin_right = 92.0
+margin_right = 88.0
margin_bottom = 54.0
-focus_neighbour_top = NodePath("../UIResolutionSelector")
+focus_neighbour_top = NodePath("../ResolutionBox/UIResolutionSelector")
focus_neighbour_bottom = NodePath("../vsync")
size_flags_horizontal = 0
+theme = null
+pressed = true
text = "fullscreen"
-[node name="vsync" parent="ColorRect/VBoxContainer" instance=ExtResource( 7 )]
+[node name="vsync" parent="Backgroud/SettingsWindow" instance=ExtResource( 7 )]
margin_top = 58.0
-margin_right = 60.0
+margin_right = 56.0
margin_bottom = 74.0
focus_neighbour_top = NodePath("../fullscreen")
-focus_neighbour_bottom = NodePath("../Back")
+focus_neighbour_bottom = NodePath("../bullet lights")
size_flags_horizontal = 0
+theme = null
text = "Vsync"
-[node name="Back" type="Button" parent="ColorRect/VBoxContainer"]
+[node name="bullet lights" type="CheckBox" parent="Backgroud/SettingsWindow"]
margin_top = 78.0
-margin_right = 32.0
-margin_bottom = 92.0
+margin_right = 157.0
+margin_bottom = 94.0
focus_neighbour_top = NodePath("../vsync")
-focus_neighbour_bottom = NodePath("../VolumeSlider")
+focus_neighbour_bottom = NodePath("../BackButton")
+pressed = true
+text = "bullet lights"
+
+[node name="BackButton" type="Button" parent="Backgroud/SettingsWindow"]
+unique_name_in_owner = true
+margin_top = 98.0
+margin_right = 32.0
+margin_bottom = 112.0
+focus_neighbour_top = NodePath("../bullet lights")
+focus_neighbour_bottom = NodePath("../VolumeBox/VolumeSlider")
size_flags_horizontal = 0
-theme = ExtResource( 9 )
text = "Back"
align = 0
__meta__ = {
"_edit_use_anchors_": false
}
-[node name="pause2" type="Label" parent="ColorRect"]
-margin_left = 6.0
-margin_top = 155.0
-margin_right = 288.0
-margin_bottom = 172.0
-custom_fonts/font = ExtResource( 4 )
-text = "Paused"
-align = 2
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="pause" type="Label" parent="ColorRect"]
-margin_left = 28.0
-margin_top = 133.0
-margin_right = 310.0
-margin_bottom = 150.0
-custom_fonts/font = ExtResource( 4 )
-text = "Press esc to unpause"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="pause_icon" type="Sprite" parent="ColorRect"]
-position = Vector2( 303, 164 )
-scale = Vector2( 1, 0.987089 )
-texture = ExtResource( 2 )
-
-[connection signal="gui_input" from="ColorRect/VBoxContainer/VolumeSlider" to="ColorRect/VBoxContainer/VolumeSlider" method="_on_VolumeSlider_gui_input"]
-[connection signal="value_changed" from="ColorRect/VBoxContainer/VolumeSlider" to="ColorRect/VBoxContainer/VolumeSlider" method="_on_value_changed"]
-[connection signal="resolution_changed" from="ColorRect/VBoxContainer/UIResolutionSelector" to="." method="_on_UIResolutionSelector_resolution_changed"]
-[connection signal="toggled" from="ColorRect/VBoxContainer/fullscreen" to="." method="_on_UIFullscreenCheckbox_toggled"]
-[connection signal="toggled" from="ColorRect/VBoxContainer/vsync" to="." method="_on_UIVsyncCheckbox_toggled"]
-[connection signal="gui_input" from="ColorRect/VBoxContainer/Back" to="." method="_on_Back_gui_input"]
+[connection signal="gui_input" from="Backgroud/SettingsWindow/VolumeBox/VolumeSlider" to="Backgroud/SettingsWindow/VolumeBox/VolumeSlider" method="_on_VolumeSlider_gui_input"]
+[connection signal="value_changed" from="Backgroud/SettingsWindow/VolumeBox/VolumeSlider" to="Backgroud/SettingsWindow/VolumeBox/VolumeSlider" method="_on_value_changed"]
+[connection signal="resolution_changed" from="Backgroud/SettingsWindow/ResolutionBox/UIResolutionSelector" to="." method="_on_UIResolutionSelector_resolution_changed"]
+[connection signal="toggled" from="Backgroud/SettingsWindow/fullscreen" to="." method="_on_UIFullscreenCheckbox_toggled"]
+[connection signal="toggled" from="Backgroud/SettingsWindow/vsync" to="." method="_on_UIVsyncCheckbox_toggled"]
+[connection signal="toggled" from="Backgroud/SettingsWindow/bullet lights" to="." method="_on_bullet_lights_toggled"]
+[connection signal="pressed" from="Backgroud/SettingsWindow/BackButton" to="." method="_on_BackButton_pressed"]
diff --git a/ui/scripts/HpUi.gd b/ui/scripts/HpUi.gd
index 1d5c6d1..12ee4de 100644
--- a/ui/scripts/HpUi.gd
+++ b/ui/scripts/HpUi.gd
@@ -21,7 +21,5 @@ func set_max_hearts(value):
func _ready():
self.hearts = playerstats.hp
-# warning-ignore:return_value_discarded
playerstats.connect("hp_changed", self, "set_hearts")
-# warning-ignore:return_value_discarded
playerstats.connect("max_hp_changed", self, "set_max_hearts")
diff --git a/ui/scripts/StartMenu.gd b/ui/scripts/StartMenu.gd
index eeacd32..0cd31e2 100644
--- a/ui/scripts/StartMenu.gd
+++ b/ui/scripts/StartMenu.gd
@@ -7,13 +7,10 @@ onready var highscoreLabel = $Label
func _input(event):
if on:
-# warning-ignore:return_value_discarded
if event.is_action("shoot_1"):
Game.transition("res://world/World.tscn")
if event.is_action("ui_cancel"):
Game.exit()
- if event.is_action("options"):
- $pause.show()
func _ready():
diff --git a/ui/scripts/pausemenu.gd b/ui/scripts/pausemenu.gd
index 8becb37..ea08083 100644
--- a/ui/scripts/pausemenu.gd
+++ b/ui/scripts/pausemenu.gd
@@ -2,29 +2,20 @@ extends Control
var setting = false
export var trigger = "pause"
-export var pausing = true
-
-func _ready():
- $ColorRect/settings/ColorRect/pause.visible = pausing
- $ColorRect/settings/ColorRect/pause2.visible = pausing
- $ColorRect/pause1.visible = pausing
- $ColorRect/pause2.visible = pausing
- $ColorRect/pause_icon.visible = pausing
- $ColorRect/settings/ColorRect/pause_icon.visible = pausing
+onready var main_menu_button = $"%MainMenuButton"
+onready var settings = $"%settings"
func _input(event):
if event.is_action_pressed(trigger):
- var new_pause_state = not get_tree().paused
- get_tree().paused = new_pause_state
- visible = new_pause_state
- if new_pause_state:
- $ColorRect/VBoxContainer/mainmenu.grab_focus()
- $ColorRect/settings/ColorRect/Stars.emitting = true
- elif new_pause_state == false:
- $ColorRect/settings.hide()
- $ColorRect/settings/ColorRect/Stars.emitting = false
+ var tree = get_tree()
+ tree.paused = not tree.paused
+ visible = tree.paused
+ if tree.paused:
+ main_menu_button.grab_focus()
+ else:
+ settings.hide()
func _exit_tree():
@@ -32,35 +23,21 @@ func _exit_tree():
func _on_settings_back():
- $ColorRect/settings.visible = false
- yield(get_tree().create_timer(.3), "timeout")
- $ColorRect/VBoxContainer/mainmenu.grab_focus()
+ settings.visible = false
setting = false
+ yield(get_tree(), "idle_frame")
+ main_menu_button.grab_focus()
-func update_settings(settings: Dictionary) -> void:
- OS.window_fullscreen = settings.fullscreen
- OS.set_window_size(settings.resolution)
- OS.vsync_enabled = settings.vsync
-
-
-func _on_settings_apply_button_pressed(settings) -> void:
- update_settings(settings)
-
-
-# warning-ignore:return_value_discarded
-func _on_mainmenu_gui_input(event):
- if event.is_action("ui_accept"):
- Game.transition("res://ui/scenes/StartMenu.tscn")
+func _on_options_pressed():
+ if setting != true:
+ setting = true
+ settings.called()
-func _on_options_gui_input(event):
- if event.is_action("ui_accept"):
- if setting != true:
- setting = true
- $ColorRect/settings.called()
+func _on_exit_pressed():
+ Game.exit()
-func _on_exit_gui_input(event):
- if event.is_action("ui_accept"):
- Game.exit()
+func _on_MainMenuButton_pressed():
+ Game.transition("res://ui/scenes/StartMenu.tscn")
diff --git a/ui/scripts/settings.gd b/ui/scripts/settings.gd
index 952024e..f1b3446 100644
--- a/ui/scripts/settings.gd
+++ b/ui/scripts/settings.gd
@@ -4,49 +4,26 @@ signal back
func called():
- self.show()
- yield(get_tree().create_timer(.3), "timeout")
- $ColorRect/VBoxContainer/Back.grab_focus()
-
-
-func _on_Back_gui_input(event):
- if event.is_action("ui_accept"):
- emit_signal("back")
-
-
-func controls():
- $"../pause2".hide()
- $"../pause1".hide()
-
-
-func uncontrols():
- $"../pause2".show()
- $"../pause1".show()
-
-
-signal apply_button_pressed(settings)
-
-var _settings := {resolution = Vector2(1280, 720), fullscreen = false, vsync = false}
+ show()
+ $"%BackButton".grab_focus()
func _on_UIResolutionSelector_resolution_changed(new_resolution: Vector2) -> void:
- _settings.resolution = new_resolution
- emit_signal("apply_button_pressed", _settings)
+ OS.set_window_size(new_resolution)
-func _on_UIFullscreenCheckbox_toggled(is_button_pressed: bool) -> void:
- _settings.fullscreen = is_button_pressed
- emit_signal("apply_button_pressed", _settings)
+func _on_UIFullscreenCheckbox_toggled(button_pressed: bool) -> void:
+ OS.window_fullscreen = button_pressed
-func _on_UIVsyncCheckbox_toggled(is_button_pressed: bool) -> void:
- _settings.vsync = is_button_pressed
- emit_signal("apply_button_pressed", _settings)
+func _on_UIVsyncCheckbox_toggled(button_pressed: bool) -> void:
+ OS.vsync_enabled = button_pressed
-func _on_InputMenu_controls():
- controls()
+func _on_BackButton_pressed():
+ emit_signal("back")
-func _on_InputMenu_uncontrolled():
- uncontrols()
+func _on_bullet_lights_toggled(button_pressed):
+ get_tree().call_group("pbullet", "set_lights", button_pressed)
+ ProjectSettings.set_setting("global/bullet_lights", button_pressed)
diff --git a/world/World.gd b/world/World.gd
index 52cc03e..82d8ecd 100644
--- a/world/World.gd
+++ b/world/World.gd
@@ -14,11 +14,6 @@ func _ready():
scoreLabel.hide()
-func _input(event):
- if event.is_action("ui_home"):
- self.score = 990
-
-
func set_score(value):
score = value
update_score_label()
@@ -43,7 +38,6 @@ func set_score(value):
SaveAndLoad.save_data_to_file(save_data)
print("saved?")
if score >= 30000:
-# warning-ignore:return_value_discarded
Game.transition("res://ui/scenes/Win.tscn")
@@ -65,7 +59,6 @@ func _on_Ship_player_death():
playerstats.hp = playerstats.max_hp
update_save_data()
yield(get_tree().create_timer(1), "timeout")
-# warning-ignore:return_value_discarded
Game.transition("res://ui/scenes/GameOverScreen.tscn")