| -rw-r--r-- | autoloads/CLI.gd | 21 | ||||
| -rw-r--r-- | bullets/scenes/EnemyLaser.tscn | 65 | ||||
| -rw-r--r-- | bullets/scenes/EnemyLaserBig.tscn | 76 | ||||
| -rw-r--r-- | bullets/scenes/Fireball.tscn | 11 | ||||
| -rw-r--r-- | bullets/scenes/Laser.tscn | 22 | ||||
| -rw-r--r-- | bullets/scenes/missile.tscn | 12 | ||||
| -rw-r--r-- | bullets/scripts/Laser.gd | 41 | ||||
| -rw-r--r-- | bullets/scripts/missile.gd | 10 | ||||
| -rw-r--r-- | effects/Game.gd | 4 | ||||
| -rw-r--r-- | enemy/scripts/Drone.gd | 4 | ||||
| -rw-r--r-- | enemy/scripts/EnemyClass.gd | 33 | ||||
| -rw-r--r-- | other/Save&Load.gd | 4 | ||||
| -rw-r--r-- | player/scripts/ShipArea2d.gd | 5 | ||||
| -rw-r--r-- | player/scripts/playerstats.gd | 9 | ||||
| -rw-r--r-- | project.godot | 8 | ||||
| -rw-r--r-- | ui/buttontheme.tres | 2 | ||||
| -rw-r--r-- | ui/scenes/StartMenu.tscn | 3 | ||||
| -rw-r--r-- | ui/scenes/pause.tscn | 60 | ||||
| -rw-r--r-- | ui/scenes/settings.tscn | 166 | ||||
| -rw-r--r-- | ui/scripts/HpUi.gd | 2 | ||||
| -rw-r--r-- | ui/scripts/StartMenu.gd | 3 | ||||
| -rw-r--r-- | ui/scripts/pausemenu.gd | 63 | ||||
| -rw-r--r-- | ui/scripts/settings.gd | 47 | ||||
| -rw-r--r-- | world/World.gd | 7 |
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") |