heh
bendn 2023-12-23
parent f735e7b · commit 195350a
-rw-r--r--src/inp.txt1405
-rw-r--r--src/main.rs133
2 files changed, 208 insertions, 1330 deletions
diff --git a/src/inp.txt b/src/inp.txt
index 0cde9ae..009a788 100644
--- a/src/inp.txt
+++ b/src/inp.txt
@@ -1,1264 +1,141 @@
-1,3,281~1,4,281
-1,6,149~1,6,151
-9,3,268~9,5,268
-8,5,199~8,6,199
-5,0,182~8,0,182
-7,4,124~7,5,124
-2,5,126~2,6,126
-6,1,91~9,1,91
-0,5,61~2,5,61
-5,3,24~7,3,24
-0,2,80~0,3,80
-0,8,86~2,8,86
-3,3,263~3,6,263
-9,2,278~9,3,278
-4,0,183~7,0,183
-4,3,11~4,5,11
-0,7,67~3,7,67
-2,4,94~2,7,94
-2,6,200~2,8,200
-2,6,28~5,6,28
-3,3,191~3,6,191
-3,5,75~5,5,75
-1,5,56~1,9,56
-7,4,203~9,4,203
-5,1,177~5,2,177
-5,5,286~7,5,286
-3,4,87~4,4,87
-4,4,113~4,6,113
-6,2,200~6,4,200
-3,7,85~5,7,85
-9,6,1~9,8,1
-0,1,248~0,1,250
-7,6,245~7,8,245
-2,0,7~5,0,7
-2,9,202~2,9,203
-3,5,104~3,6,104
-3,4,48~5,4,48
-4,4,276~4,7,276
-0,3,279~2,3,279
-3,7,247~6,7,247
-8,1,14~8,3,14
-1,1,287~1,1,287
-3,1,165~4,1,165
-3,1,199~4,1,199
-7,5,188~8,5,188
-5,7,90~5,9,90
-6,6,214~6,7,214
-3,7,51~3,8,51
-0,0,250~2,0,250
-1,7,136~3,7,136
-7,2,118~8,2,118
-1,1,185~2,1,185
-1,7,214~1,7,216
-5,3,296~6,3,296
-6,6,255~7,6,255
-8,3,174~8,4,174
-3,3,265~5,3,265
-7,4,257~9,4,257
-5,6,25~7,6,25
-0,6,39~0,7,39
-7,1,101~7,3,101
-2,7,99~2,9,99
-3,4,224~3,6,224
-3,6,32~3,6,35
-6,3,106~7,3,106
-3,5,206~6,5,206
-9,8,78~9,8,81
-5,0,287~5,2,287
-5,2,302~5,5,302
-2,1,87~3,1,87
-5,5,236~8,5,236
-6,0,189~7,0,189
-0,1,279~3,1,279
-2,5,241~2,6,241
-5,4,43~7,4,43
-3,3,261~3,5,261
-9,7,110~9,9,110
-8,6,173~9,6,173
-3,1,280~5,1,280
-9,3,260~9,3,262
-6,6,287~6,7,287
-5,7,299~7,7,299
-1,7,212~1,9,212
-4,0,288~4,3,288
-5,7,165~5,9,165
-7,3,97~7,3,98
-6,5,254~6,5,257
-6,1,58~8,1,58
-2,2,200~2,4,200
-2,2,3~2,2,4
-3,0,211~5,0,211
-1,1,187~3,1,187
-3,6,283~4,6,283
-5,6,30~7,6,30
-5,2,276~9,2,276
-5,0,23~5,0,24
-3,0,253~6,0,253
-2,6,211~2,9,211
-2,5,6~2,7,6
-0,9,137~1,9,137
-7,6,257~7,9,257
-5,6,159~5,9,159
-0,3,119~0,4,119
-0,6,4~0,6,6
-6,0,164~6,2,164
-5,9,270~7,9,270
-5,5,240~6,5,240
-0,2,197~3,2,197
-7,3,147~7,5,147
-6,0,109~7,0,109
-1,9,133~2,9,133
-5,2,267~9,2,267
-3,0,180~5,0,180
-5,8,136~7,8,136
-0,4,286~0,6,286
-5,5,191~5,7,191
-1,1,239~2,1,239
-6,4,68~6,4,70
-3,0,237~3,2,237
-3,1,110~4,1,110
-9,2,247~9,4,247
-2,0,210~2,2,210
-5,0,107~7,0,107
-2,4,184~2,7,184
-1,8,199~4,8,199
-5,1,297~5,3,297
-4,0,122~4,2,122
-5,7,41~5,9,41
-0,7,295~3,7,295
-0,8,6~0,8,7
-9,0,250~9,2,250
-2,2,97~5,2,97
-5,4,36~5,5,36
-9,6,74~9,8,74
-8,2,256~9,2,256
-8,2,268~8,4,268
-6,1,152~6,3,152
-9,2,206~9,4,206
-7,7,36~9,7,36
-1,4,146~1,6,146
-2,1,83~4,1,83
-7,4,289~8,4,289
-9,6,129~9,8,129
-6,3,169~9,3,169
-5,9,174~6,9,174
-2,8,19~5,8,19
-1,4,58~1,7,58
-0,3,268~4,3,268
-1,4,7~1,4,8
-8,7,292~8,9,292
-8,1,242~9,1,242
-4,0,208~4,2,208
-7,8,267~7,9,267
-9,8,179~9,9,179
-0,1,76~0,1,78
-2,9,32~6,9,32
-1,9,301~3,9,301
-3,2,293~3,5,293
-4,2,54~7,2,54
-5,7,66~7,7,66
-2,3,121~3,3,121
-0,2,50~3,2,50
-4,3,269~6,3,269
-0,1,129~0,4,129
-2,4,93~2,7,93
-5,3,55~5,5,55
-0,5,1~0,5,2
-3,5,115~6,5,115
-7,1,265~9,1,265
-6,3,43~7,3,43
-6,2,198~6,3,198
-8,4,209~9,4,209
-6,5,181~6,8,181
-4,2,14~6,2,14
-3,0,269~4,0,269
-9,0,154~9,2,154
-2,1,281~2,1,283
-1,7,69~1,9,69
-0,5,85~0,5,87
-1,0,119~1,2,119
-3,5,135~4,5,135
-9,0,48~9,2,48
-2,2,148~2,5,148
-3,5,138~3,5,138
-2,1,102~2,4,102
-7,7,278~7,8,278
-5,5,157~5,7,157
-0,3,49~0,4,49
-2,0,62~4,0,62
-7,2,13~7,4,13
-2,5,140~4,5,140
-3,1,205~5,1,205
-4,2,226~4,3,226
-4,7,21~7,7,21
-1,1,20~4,1,20
-3,0,240~3,0,242
-9,6,76~9,8,76
-7,8,169~9,8,169
-0,5,156~3,5,156
-7,8,10~7,8,12
-0,6,280~0,8,280
-1,0,101~1,2,101
-5,5,135~5,5,136
-8,2,207~8,5,207
-4,3,86~4,5,86
-0,7,132~3,7,132
-5,6,260~7,6,260
-1,3,43~3,3,43
-1,8,45~2,8,45
-2,2,243~2,3,243
-6,4,92~7,4,92
-2,5,177~2,7,177
-4,4,233~6,4,233
-6,8,290~8,8,290
-4,5,65~4,7,65
-3,8,268~6,8,268
-2,2,244~2,2,245
-0,9,301~0,9,304
-0,1,49~0,1,51
-7,3,166~7,6,166
-5,6,243~5,9,243
-8,3,77~8,5,77
-8,6,215~8,9,215
-2,0,252~4,0,252
-5,7,171~5,9,171
-4,0,9~4,0,11
-6,2,153~9,2,153
-7,2,209~7,4,209
-2,4,177~4,4,177
-3,4,214~6,4,214
-5,3,240~7,3,240
-2,0,201~2,2,201
-9,6,201~9,9,201
-0,2,56~0,4,56
-5,6,96~7,6,96
-5,3,217~7,3,217
-0,1,99~2,1,99
-0,7,70~0,9,70
-0,9,109~1,9,109
-4,0,202~4,2,202
-3,4,116~4,4,116
-0,2,114~3,2,114
-8,2,206~8,4,206
-7,7,101~7,7,102
-8,0,248~8,3,248
-6,0,85~6,3,85
-3,3,87~5,3,87
-3,8,65~4,8,65
-4,3,251~4,5,251
-6,6,197~8,6,197
-5,2,121~8,2,121
-0,7,79~3,7,79
-6,5,209~6,7,209
-5,5,8~6,5,8
-0,0,254~2,0,254
-4,6,170~7,6,170
-1,3,118~1,3,119
-2,8,166~3,8,166
-1,7,128~1,7,131
-5,2,244~7,2,244
-0,1,3~0,4,3
-7,5,167~7,5,169
-4,2,94~7,2,94
-6,7,218~8,7,218
-7,9,14~9,9,14
-5,2,256~5,5,256
-2,6,134~4,6,134
-4,3,57~6,3,57
-3,8,259~3,9,259
-5,7,38~6,7,38
-0,4,85~0,4,87
-6,5,133~6,6,133
-5,6,124~5,8,124
-2,0,246~3,0,246
-8,1,17~8,4,17
-5,4,240~6,4,240
-2,6,22~5,6,22
-4,7,294~5,7,294
-6,3,164~8,3,164
-4,5,48~4,7,48
-1,4,56~3,4,56
-6,9,11~8,9,11
-6,3,60~6,4,60
-0,6,229~0,8,229
-6,7,139~9,7,139
-7,3,114~7,5,114
-9,6,171~9,8,171
-9,8,112~9,9,112
-5,1,253~5,5,253
-5,0,122~8,0,122
-5,0,281~5,2,281
-9,5,2~9,5,6
-9,2,265~9,5,265
-0,1,121~0,4,121
-2,5,14~4,5,14
-3,0,17~3,0,19
-3,5,175~5,5,175
-7,1,59~7,3,59
-4,6,111~7,6,111
-6,1,238~6,5,238
-8,2,48~8,4,48
-6,2,88~6,4,88
-4,6,46~5,6,46
-2,0,273~2,2,273
-5,3,3~5,5,3
-1,6,300~3,6,300
-4,7,226~4,7,228
-0,4,10~3,4,10
-0,8,44~2,8,44
-4,0,187~4,3,187
-4,1,21~4,1,21
-7,3,259~9,3,259
-3,6,286~5,6,286
-0,3,264~3,3,264
-1,8,280~1,9,280
-2,0,92~2,0,92
-5,4,76~5,6,76
-1,5,252~1,7,252
-2,1,113~4,1,113
-4,4,221~4,7,221
-7,5,254~7,5,257
-0,4,214~0,6,214
-1,4,284~1,7,284
-3,5,291~3,8,291
-3,4,121~3,7,121
-0,4,4~2,4,4
-1,0,267~1,2,267
-1,6,258~1,8,258
-5,2,194~8,2,194
-3,3,65~6,3,65
-3,1,235~3,4,235
-9,0,285~9,4,285
-6,7,70~8,7,70
-3,3,58~3,4,58
-6,6,212~6,7,212
-1,1,178~3,1,178
-4,6,188~6,6,188
-3,3,188~5,3,188
-2,1,232~5,1,232
-8,3,126~8,4,126
-3,1,106~3,1,107
-5,3,196~7,3,196
-0,4,289~1,4,289
-4,5,209~4,7,209
-9,2,18~9,2,19
-2,1,207~3,1,207
-1,3,246~1,5,246
-9,1,45~9,3,45
-5,6,126~8,6,126
-7,8,241~7,9,241
-1,4,205~1,8,205
-8,4,136~9,4,136
-5,2,26~5,4,26
-2,0,116~4,0,116
-9,4,170~9,6,170
-5,3,61~5,5,61
-6,7,87~9,7,87
-3,9,129~6,9,129
-3,0,267~3,3,267
-2,2,124~2,5,124
-5,3,150~5,5,150
-2,6,84~2,6,86
-1,1,18~2,1,18
-2,3,258~5,3,258
-5,0,274~5,2,274
-4,1,238~5,1,238
-8,2,78~8,4,78
-3,2,266~3,4,266
-3,2,194~4,2,194
-2,7,214~2,9,214
-0,1,128~0,3,128
-1,7,213~4,7,213
-2,2,241~2,4,241
-3,6,165~3,8,165
-1,0,113~1,3,113
-7,4,252~7,7,252
-7,3,80~7,6,80
-8,4,29~8,7,29
-3,8,23~5,8,23
-6,7,132~6,9,132
-8,8,39~9,8,39
-2,8,54~2,8,56
-5,0,197~7,0,197
-4,8,295~6,8,295
-1,0,116~1,0,117
-7,6,298~7,8,298
-4,6,14~7,6,14
-8,1,81~8,3,81
-2,6,129~2,8,129
-4,2,249~4,4,249
-2,5,200~5,5,200
-5,3,212~5,4,212
-5,6,268~5,7,268
-4,3,111~7,3,111
-8,7,252~8,9,252
-5,0,20~7,0,20
-7,6,164~7,8,164
-7,3,170~9,3,170
-5,8,45~5,8,48
-6,7,62~6,8,62
-3,4,200~5,4,200
-2,5,141~5,5,141
-6,7,41~6,7,43
-2,9,75~5,9,75
-3,7,19~5,7,19
-2,5,150~2,7,150
-6,1,251~8,1,251
-3,2,11~4,2,11
-4,7,100~8,7,100
-8,4,172~8,6,172
-8,5,4~8,8,4
-2,1,98~2,4,98
-2,3,126~2,4,126
-5,2,132~8,2,132
-5,6,291~5,8,291
-1,5,219~4,5,219
-9,6,252~9,6,255
-1,6,81~1,9,81
-2,5,31~2,7,31
-2,6,72~2,9,72
-1,5,249~1,7,249
-3,0,88~6,0,88
-8,7,109~8,7,111
-5,9,176~5,9,177
-6,3,290~6,3,293
-1,7,289~1,7,291
-3,3,6~3,6,6
-3,4,265~3,7,265
-7,8,103~7,8,104
-6,6,258~6,8,258
-0,1,48~0,3,48
-0,7,78~1,7,78
-5,3,99~5,6,99
-0,4,181~2,4,181
-6,7,166~6,8,166
-0,6,291~1,6,291
-5,6,206~5,8,206
-5,3,227~5,4,227
-6,5,98~6,8,98
-6,0,3~6,0,6
-9,0,106~9,2,106
-5,6,68~7,6,68
-8,9,254~8,9,256
-3,3,69~3,3,71
-0,3,77~0,5,77
-3,2,202~3,4,202
-2,6,71~2,7,71
-2,2,247~3,2,247
-5,8,132~5,9,132
-3,1,56~4,1,56
-9,2,280~9,2,283
-1,8,52~4,8,52
-9,7,175~9,7,177
-7,4,247~7,6,247
-2,0,286~2,1,286
-7,5,47~7,5,49
-2,9,66~3,9,66
-3,2,212~4,2,212
-5,3,160~5,5,160
-3,7,124~3,9,124
-3,1,53~3,2,53
-3,0,303~5,0,303
-3,0,296~3,2,296
-7,4,11~7,5,11
-1,7,3~3,7,3
-8,2,134~8,3,134
-8,7,77~8,7,79
-4,1,13~4,3,13
-6,4,186~6,6,186
-0,7,227~0,9,227
-7,6,127~7,6,129
-5,4,178~7,4,178
-1,1,179~3,1,179
-1,8,169~2,8,169
-7,7,67~7,9,67
-3,4,137~5,4,137
-0,9,228~2,9,228
-7,9,173~9,9,173
-7,5,271~9,5,271
-4,1,262~5,1,262
-6,5,298~6,8,298
-7,5,184~7,5,187
-4,9,134~6,9,134
-1,4,148~1,6,148
-6,1,33~6,1,35
-7,2,255~9,2,255
-9,7,142~9,8,142
-0,8,47~0,8,49
-2,2,203~4,2,203
-3,2,8~3,2,8
-1,6,20~1,8,20
-3,7,229~3,8,229
-3,0,53~7,0,53
-0,3,270~1,3,270
-8,2,32~8,2,34
-2,6,301~2,8,301
-6,1,30~6,4,30
-3,0,119~5,0,119
-4,5,32~5,5,32
-3,5,132~6,5,132
-3,3,118~3,5,118
-5,5,307~5,7,307
-3,7,294~3,9,294
-0,4,180~2,4,180
-6,4,146~6,4,148
-4,4,13~6,4,13
-2,5,82~2,7,82
-5,9,275~8,9,275
-6,9,76~7,9,76
-4,7,258~4,9,258
-8,0,256~8,1,256
-6,1,265~6,3,265
-5,7,26~5,8,26
-9,5,28~9,7,28
-2,5,217~5,5,217
-1,2,172~4,2,172
-1,3,207~1,3,209
-9,4,120~9,6,120
-7,3,220~7,5,220
-6,8,260~8,8,260
-0,0,175~2,0,175
-3,1,31~6,1,31
-3,4,36~3,6,36
-4,1,191~4,2,191
-1,1,109~3,1,109
-3,5,246~4,5,246
-0,1,281~0,3,281
-1,8,83~3,8,83
-5,8,298~5,8,298
-2,2,293~2,4,293
-0,2,5~0,3,5
-2,4,45~3,4,45
-1,4,187~2,4,187
-4,2,119~7,2,119
-5,8,70~5,9,70
-3,4,50~5,4,50
-6,4,100~6,6,100
-1,0,51~1,3,51
-7,8,26~9,8,26
-7,5,276~8,5,276
-6,2,26~6,5,26
-0,1,74~0,4,74
-6,8,133~6,9,133
-2,5,202~2,5,204
-0,7,103~4,7,103
-3,4,226~5,4,226
-9,2,105~9,4,105
-9,2,197~9,4,197
-7,4,45~7,5,45
-6,3,115~8,3,115
-6,3,162~6,6,162
-3,4,222~3,7,222
-4,5,119~4,7,119
-8,1,45~8,2,45
-2,0,19~2,2,19
-0,5,39~3,5,39
-7,5,53~7,7,53
-7,7,105~9,7,105
-3,3,44~3,3,47
-4,2,148~6,2,148
-8,1,201~9,1,201
-6,0,195~6,2,195
-3,1,168~3,4,168
-9,4,201~9,4,201
-4,2,156~4,4,156
-2,3,76~2,3,76
-5,6,54~6,6,54
-6,4,247~6,4,249
-7,2,243~7,4,243
-4,1,81~4,4,81
-3,4,155~6,4,155
-7,6,108~7,7,108
-7,7,9~7,9,9
-5,2,100~5,4,100
-2,6,98~2,8,98
-2,6,176~5,6,176
-3,5,82~3,7,82
-4,1,282~6,1,282
-3,5,299~6,5,299
-9,3,245~9,6,245
-6,1,103~6,4,103
-4,2,149~4,2,150
-6,8,165~6,9,165
-4,2,20~4,2,20
-4,0,186~7,0,186
-0,5,82~0,7,82
-7,0,254~7,2,254
-6,4,63~6,7,63
-4,2,297~4,4,297
-7,0,13~9,0,13
-8,6,169~9,6,169
-5,2,193~5,3,193
-1,0,195~1,0,197
-5,9,3~5,9,4
-7,5,2~7,7,2
-6,5,210~9,5,210
-3,6,227~3,6,230
-5,1,190~7,1,190
-3,4,53~3,4,53
-4,8,303~4,9,303
-2,0,204~2,0,207
-4,7,105~4,9,105
-2,1,23~4,1,23
-5,4,199~5,6,199
-4,3,9~4,6,9
-6,8,266~7,8,266
-6,9,74~8,9,74
-5,9,105~5,9,107
-2,2,174~3,2,174
-6,0,203~6,2,203
-2,7,275~2,8,275
-5,7,163~5,8,163
-1,6,57~4,6,57
-0,3,247~1,3,247
-5,1,176~5,1,176
-5,3,286~6,3,286
-7,0,2~7,3,2
-1,4,245~4,4,245
-0,8,102~2,8,102
-4,6,204~6,6,204
-1,1,175~5,1,175
-8,6,127~9,6,127
-0,0,257~0,2,257
-0,5,239~3,5,239
-2,1,238~2,4,238
-4,9,2~4,9,4
-9,1,251~9,1,252
-4,0,178~4,1,178
-6,5,144~7,5,144
-2,4,206~2,6,206
-3,8,10~4,8,10
-4,5,290~4,7,290
-6,3,197~6,5,197
-0,7,224~0,9,224
-5,8,245~6,8,245
-9,0,16~9,2,16
-5,4,211~5,6,211
-5,4,184~5,5,184
-7,4,274~7,7,274
-2,5,230~2,5,231
-0,5,168~4,5,168
-0,4,42~2,4,42
-1,6,2~1,8,2
-8,2,208~8,2,210
-7,6,261~9,6,261
-0,4,83~0,6,83
-6,3,143~6,5,143
-4,0,104~4,2,104
-8,9,113~9,9,113
-3,5,253~3,9,253
-0,5,125~2,5,125
-2,8,15~3,8,15
-5,4,159~8,4,159
-5,1,243~7,1,243
-2,3,59~2,5,59
-3,4,297~3,6,297
-5,3,19~7,3,19
-9,0,29~9,3,29
-2,3,223~4,3,223
-5,3,25~8,3,25
-8,1,129~8,3,129
-5,3,60~5,4,60
-3,0,271~5,0,271
-7,7,279~9,7,279
-7,7,7~8,7,7
-0,1,245~1,1,245
-4,6,60~6,6,60
-2,7,87~5,7,87
-7,9,170~9,9,170
-2,4,277~4,4,277
-6,7,22~9,7,22
-6,3,12~8,3,12
-8,4,273~8,7,273
-8,3,287~8,5,287
-6,3,126~7,3,126
-0,8,109~0,8,111
-6,9,104~6,9,106
-6,6,157~7,6,157
-0,7,37~0,9,37
-3,1,181~3,1,183
-4,2,211~4,3,211
-4,8,248~6,8,248
-2,7,131~2,9,131
-6,4,118~9,4,118
-3,3,29~5,3,29
-1,6,216~1,6,218
-7,8,293~7,8,295
-0,3,126~0,6,126
-1,4,28~4,4,28
-5,1,46~7,1,46
-2,7,274~4,7,274
-5,9,5~6,9,5
-1,6,132~2,6,132
-2,9,103~4,9,103
-7,8,264~7,9,264
-8,3,292~8,5,292
-0,4,151~2,4,151
-4,6,175~4,8,175
-5,4,34~5,7,34
-3,7,21~3,8,21
-0,7,34~2,7,34
-0,8,10~0,9,10
-9,5,291~9,5,292
-7,0,9~7,3,9
-2,6,36~2,9,36
-0,3,248~0,4,248
-5,6,69~7,6,69
-2,1,246~4,1,246
-5,1,105~8,1,105
-2,0,10~2,3,10
-5,4,89~5,7,89
-6,2,29~8,2,29
-5,2,37~5,4,37
-8,3,202~9,3,202
-0,6,1~0,9,1
-5,9,303~7,9,303
-5,1,230~5,4,230
-4,6,284~6,6,284
-6,8,274~7,8,274
-8,6,35~8,6,36
-0,5,129~0,5,131
-7,2,31~7,4,31
-4,1,159~4,4,159
-0,0,243~2,0,243
-5,3,92~5,5,92
-5,6,91~5,6,93
-2,5,76~3,5,76
-1,4,114~1,5,114
-6,3,22~8,3,22
-1,3,88~1,3,89
-5,7,136~8,7,136
-2,3,4~5,3,4
-0,7,106~0,9,106
-6,0,97~6,2,97
-0,0,59~0,0,61
-5,0,90~5,0,92
-4,1,189~6,1,189
-7,3,104~9,3,104
-8,7,180~9,7,180
-7,3,250~9,3,250
-1,4,274~1,7,274
-2,7,49~4,7,49
-0,3,185~0,5,185
-0,3,282~1,3,282
-8,7,181~8,7,183
-9,6,37~9,8,37
-2,0,14~4,0,14
-4,4,202~4,6,202
-4,0,168~4,1,168
-2,7,22~2,8,22
-8,3,253~9,3,253
-1,9,283~3,9,283
-5,7,131~5,7,133
-3,5,72~3,8,72
-7,4,95~7,7,95
-1,0,174~1,2,174
-5,0,217~7,0,217
-3,3,244~3,5,244
-1,6,80~1,9,80
-5,2,91~6,2,91
-3,0,273~4,0,273
-3,3,117~3,6,117
-5,9,102~8,9,102
-5,4,183~8,4,183
-4,8,100~7,8,100
-3,7,225~3,9,225
-7,0,57~7,2,57
-7,0,286~9,0,286
-2,8,103~5,8,103
-5,2,5~5,5,5
-3,7,273~4,7,273
-7,6,184~7,8,184
-3,3,122~5,3,122
-7,5,244~7,8,244
-9,7,181~9,8,181
-0,6,213~1,6,213
-6,5,239~6,8,239
-3,4,60~3,4,62
-2,8,293~4,8,293
-8,0,46~8,1,46
-6,4,66~8,4,66
-5,1,104~7,1,104
-8,1,31~8,3,31
-2,3,71~2,4,71
-0,1,100~0,1,101
-1,0,2~1,0,4
-0,2,4~0,3,4
-7,5,138~7,7,138
-1,1,199~1,2,199
-5,3,85~5,4,85
-8,6,30~8,6,31
-9,4,38~9,4,39
-7,3,245~7,4,245
-6,7,219~8,7,219
-6,7,249~9,7,249
-1,0,65~1,2,65
-4,4,84~5,4,84
-4,1,99~4,3,99
-1,9,92~3,9,92
-8,2,279~8,3,279
-4,5,30~7,5,30
-1,5,92~4,5,92
-2,0,15~2,2,15
-9,3,112~9,6,112
-3,7,138~5,7,138
-6,0,190~8,0,190
-5,0,10~5,2,10
-3,2,169~4,2,169
-3,5,252~3,7,252
-0,7,286~2,7,286
-4,2,82~6,2,82
-3,0,215~4,0,215
-4,1,33~5,1,33
-3,6,17~3,8,17
-7,3,51~7,6,51
-7,2,117~7,4,117
-1,4,74~3,4,74
-6,0,293~8,0,293
-5,9,73~7,9,73
-3,2,300~3,4,300
-2,3,198~5,3,198
-8,5,171~8,7,171
-0,1,284~2,1,284
-3,9,44~5,9,44
-1,5,273~4,5,273
-9,0,129~9,2,129
-6,1,192~6,2,192
-3,5,58~5,5,58
-2,8,256~3,8,256
-1,0,63~3,0,63
-7,6,33~9,6,33
-0,0,114~2,0,114
-1,1,111~1,4,111
-2,2,252~4,2,252
-2,4,236~4,4,236
-3,9,95~3,9,97
-1,6,133~1,8,133
-8,1,2~9,1,2
-0,2,199~0,5,199
-6,8,240~8,8,240
-1,0,192~3,0,192
-7,3,14~7,4,14
-7,1,257~7,1,259
-6,6,246~6,6,248
-8,2,245~8,4,245
-8,2,50~9,2,50
-2,2,22~2,4,22
-1,5,227~3,5,227
-3,7,56~5,7,56
-5,4,2~7,4,2
-5,1,145~5,3,145
-1,5,8~3,5,8
-9,3,289~9,6,289
-4,3,287~7,3,287
-2,4,68~2,7,68
-7,1,26~7,3,26
-9,7,202~9,7,204
-5,5,260~5,5,260
-3,0,283~3,2,283
-5,4,232~5,6,232
-7,1,191~9,1,191
-6,3,251~6,5,251
-3,7,71~3,9,71
-4,6,224~4,8,224
-3,5,270~3,7,270
-3,1,197~6,1,197
-8,5,200~8,7,200
-3,6,101~5,6,101
-6,6,219~8,6,219
-7,5,182~7,7,182
-6,1,241~8,1,241
-3,0,52~3,2,52
-0,7,66~3,7,66
-4,9,137~4,9,139
-1,7,276~3,7,276
-4,9,300~6,9,300
-3,6,7~3,8,7
-9,5,123~9,6,123
-8,7,89~9,7,89
-1,8,207~1,8,211
-7,6,251~9,6,251
-8,7,1~8,8,1
-5,0,18~6,0,18
-1,4,94~1,7,94
-3,1,89~4,1,89
-0,0,287~2,0,287
-1,5,42~1,7,42
-0,6,217~0,6,219
-1,3,117~1,4,117
-5,2,124~7,2,124
-7,1,200~8,1,200
-5,1,266~5,3,266
-7,6,37~7,9,37
-1,4,287~2,4,287
-1,2,86~1,4,86
-3,1,3~5,1,3
-2,0,270~3,0,270
-2,6,42~3,6,42
-1,8,202~1,9,202
-8,0,197~8,3,197
-2,0,151~2,2,151
-8,8,261~8,8,261
-7,2,213~9,2,213
-9,3,138~9,6,138
-2,1,296~2,3,296
-0,6,228~0,7,228
-9,2,53~9,2,54
-3,0,61~3,2,61
-0,7,208~3,7,208
-8,0,288~8,0,290
-6,7,73~9,7,73
-7,3,109~7,5,109
-9,4,199~9,6,199
-2,5,69~2,7,69
-2,5,122~5,5,122
-5,8,207~7,8,207
-0,5,276~2,5,276
-5,3,180~5,4,180
-4,5,79~7,5,79
-0,0,57~1,0,57
-6,6,288~6,8,288
-8,7,174~9,7,174
-7,6,180~7,8,180
-4,8,168~5,8,168
-8,7,84~8,9,84
-5,2,95~7,2,95
-0,3,187~0,3,189
-5,7,162~8,7,162
-5,3,142~5,4,142
-3,7,164~5,7,164
-6,9,271~6,9,271
-0,9,204~1,9,204
-1,5,1~3,5,1
-8,6,78~8,6,80
-3,5,70~3,7,70
-0,7,80~0,7,80
-1,6,306~3,6,306
-0,1,292~2,1,292
-1,6,88~4,6,88
-3,3,282~3,4,282
-4,0,274~4,0,277
-5,8,213~8,8,213
-1,7,53~3,7,53
-7,1,92~9,1,92
-2,6,280~4,6,280
-3,5,268~3,6,268
-3,5,197~5,5,197
-4,1,5~4,4,5
-9,7,29~9,7,31
-9,5,9~9,7,9
-0,5,188~1,5,188
-2,3,142~2,5,142
-9,1,22~9,3,22
-7,6,187~8,6,187
-5,1,149~7,1,149
-6,6,76~6,7,76
-2,1,103~3,1,103
-4,3,100~4,5,100
-3,7,249~5,7,249
-2,9,68~5,9,68
-6,7,164~6,9,164
-0,5,222~0,7,222
-5,7,68~5,7,70
-1,7,72~1,7,75
-2,7,88~2,7,90
-0,3,1~1,3,1
-3,5,20~3,7,20
-3,5,167~3,7,167
-7,1,102~9,1,102
-1,4,25~2,4,25
-5,5,35~6,5,35
-5,0,17~7,0,17
-3,5,107~6,5,107
-2,5,238~5,5,238
-7,8,85~9,8,85
-3,3,84~3,6,84
-8,3,254~8,6,254
-0,5,241~1,5,241
-6,4,244~6,7,244
-9,8,182~9,8,185
-1,4,112~1,5,112
-7,3,123~9,3,123
-5,6,306~8,6,306
-3,3,148~3,3,151
-4,9,95~7,9,95
-0,7,4~0,8,4
-9,6,167~9,9,167
-0,4,183~1,4,183
-0,1,45~0,4,45
-5,9,12~8,9,12
-6,6,250~7,6,250
-8,1,259~9,1,259
-2,9,127~4,9,127
-9,1,243~9,1,245
-9,7,178~9,9,178
-7,8,210~9,8,210
-4,3,78~4,6,78
-5,7,37~5,9,37
-6,1,89~6,5,89
-1,2,82~3,2,82
-3,6,289~5,6,289
-5,7,265~8,7,265
-3,0,214~5,0,214
-2,1,161~5,1,161
-4,7,36~5,7,36
-7,1,8~7,4,8
-5,9,92~6,9,92
-4,1,264~6,1,264
-2,2,195~4,2,195
-4,7,139~4,7,140
-5,2,237~5,4,237
-5,5,208~5,6,208
-1,0,266~1,3,266
-3,1,243~3,3,243
-0,2,117~2,2,117
-3,2,239~3,2,241
-0,2,245~1,2,245
-6,6,15~8,6,15
-5,3,214~8,3,214
-8,7,23~8,8,23
-7,2,151~9,2,151
-2,3,221~2,6,221
-9,2,56~9,2,59
-9,4,78~9,6,78
-4,6,122~7,6,122
-3,3,41~3,6,41
-3,9,101~6,9,101
-4,5,277~4,6,277
-6,4,191~6,6,191
-5,2,40~5,5,40
-5,5,214~5,6,214
-3,4,294~6,4,294
-8,0,291~8,3,291
-5,2,284~5,5,284
-7,3,120~9,3,120
-3,0,125~6,0,125
-1,9,297~4,9,297
-1,5,269~3,5,269
-1,0,280~1,2,280
-8,2,133~8,5,133
-8,2,154~8,2,154
-0,3,192~0,5,192
-5,1,93~7,1,93
-8,2,238~8,5,238
-6,9,175~6,9,178
-3,5,153~7,5,153
-0,6,107~0,7,107
-5,3,261~6,3,261
-9,3,270~9,4,270
-1,0,247~3,0,247
-1,7,126~3,7,126
-7,3,154~7,6,154
-2,3,260~2,4,260
-1,7,285~3,7,285
-8,5,75~8,7,75
-6,6,194~6,8,194
-4,0,105~6,0,105
-7,7,221~8,7,221
-7,7,272~7,9,272
-5,4,129~5,6,129
-4,3,189~4,3,191
-3,3,247~5,3,247
-3,3,68~3,4,68
-0,9,201~2,9,201
-5,8,2~7,8,2
-2,7,228~3,7,228
-5,2,250~5,5,250
-4,5,257~4,7,257
-4,4,140~6,4,140
-4,6,306~4,8,306
-6,2,4~6,4,4
-4,8,72~6,8,72
-5,3,254~5,5,254
-1,2,115~4,2,115
-1,8,18~4,8,18
-1,7,43~1,8,43
-5,3,41~7,3,41
-3,0,297~3,2,297
-3,3,147~5,3,147
-1,2,206~1,4,206
-9,4,114~9,5,114
-6,7,179~9,7,179
-8,0,253~8,1,253
-1,4,63~1,6,63
-1,1,276~1,4,276
-1,9,2~2,9,2
-5,6,128~5,8,128
-8,3,293~9,3,293
-3,6,93~3,8,93
-3,6,63~3,9,63
-2,0,153~4,0,153
-0,5,133~0,8,133
-0,9,299~1,9,299
-1,1,212~3,1,212
-3,7,60~5,7,60
-5,1,259~5,4,259
-2,5,195~2,7,195
-5,4,131~5,4,134
-2,9,100~4,9,100
-1,9,261~4,9,261
-7,8,276~9,8,276
-6,4,65~6,6,65
-1,9,135~3,9,135
-4,4,173~4,6,173
-9,5,140~9,5,143
-7,6,26~9,6,26
-0,1,57~2,1,57
-5,4,234~5,5,234
-9,0,105~9,1,105
-2,6,168~4,6,168
-9,0,198~9,3,198
-6,1,44~9,1,44
-4,1,235~4,4,235
-1,5,145~2,5,145
-8,7,11~9,7,11
-4,9,56~5,9,56
-7,3,5~8,3,5
-6,6,169~6,8,169
-2,0,90~4,0,90
-7,5,1~7,6,1
-7,1,55~7,2,55
-9,1,126~9,3,126
-5,7,292~7,7,292
-3,8,53~3,8,54
-3,0,6~3,2,6
-9,1,194~9,3,194
-6,4,111~9,4,111
-8,4,216~8,6,216
-7,1,28~9,1,28
-4,6,31~7,6,31
-5,5,241~5,7,241
-1,3,290~1,4,290
-1,6,290~3,6,290
-8,5,36~8,5,37
-1,6,43~3,6,43
-8,6,242~8,9,242
-5,0,200~5,0,200
-4,6,136~4,7,136
-2,1,209~4,1,209
-5,2,191~5,3,191
-0,4,285~2,4,285
-2,4,103~3,4,103
-6,8,202~9,8,202
-3,4,31~3,6,31
-9,4,35~9,7,35
-3,0,189~5,0,189
-2,1,86~4,1,86
-1,6,36~1,8,36
-0,0,22~3,0,22
-5,4,286~9,4,286
-3,5,308~3,8,308
-7,7,262~7,9,262
-7,7,82~9,7,82
-4,4,255~4,7,255
-3,4,279~6,4,279
-4,7,59~6,7,59
-8,7,107~9,7,107
-0,2,40~0,5,40
-6,5,212~8,5,212
-3,6,12~3,9,12
-6,8,195~8,8,195
-2,7,198~2,9,198
-4,5,87~4,5,90
-2,1,290~4,1,290
-3,1,59~5,1,59
-4,0,300~4,3,300
-3,4,180~3,7,180
-1,8,87~1,8,88
-3,4,176~6,4,176
-3,6,91~3,9,91
-3,6,303~6,6,303
-4,5,259~5,5,259
-4,8,55~4,9,55
-4,3,62~4,6,62
-0,0,6~1,0,6
-5,3,95~7,3,95
-2,9,29~3,9,29
-5,3,154~5,5,154
-1,0,182~1,2,182
-9,5,273~9,7,273
-3,3,140~3,4,140
-2,2,79~2,4,79
-5,5,245~7,5,245
-6,0,91~7,0,91
-0,8,136~0,8,138
-6,0,270~6,2,270
-7,5,33~8,5,33
-2,2,268~4,2,268
-7,0,262~7,1,262
-4,7,250~4,7,251
-0,3,73~2,3,73
-4,2,17~4,2,17
-8,1,290~8,3,290
-6,0,15~7,0,15
-7,1,148~7,3,148
-2,4,81~2,4,84
-4,9,69~5,9,69
-5,4,157~8,4,157
-0,4,251~0,4,252
-0,6,109~0,7,109
-1,4,144~3,4,144
-0,2,41~0,3,41
-3,7,193~5,7,193
-7,3,200~8,3,200
-5,6,44~5,8,44
-4,6,50~4,8,50
-7,5,13~7,6,13
-0,8,277~3,8,277
-0,6,60~2,6,60
-4,5,205~6,5,205
-0,5,293~2,5,293
-1,0,54~1,2,54
-7,0,58~8,0,58
-2,3,103~5,3,103
-9,3,254~9,3,256
-3,1,162~6,1,162
-4,8,226~4,8,227
-6,1,5~6,3,5
-0,4,62~0,6,62
-2,3,292~2,6,292
-2,5,194~4,5,194
-4,2,8~4,4,8
-7,4,206~7,5,206
-6,4,243~6,6,243
-3,1,124~4,1,124
-0,1,54~0,4,54
-6,8,14~7,8,14
-6,4,198~8,4,198
-7,3,244~9,3,244
-7,8,165~9,8,165
-7,1,203~7,1,206
-5,2,53~5,6,53
-0,2,49~3,2,49
-4,0,102~4,3,102
-7,1,42~7,3,42
-5,2,122~7,2,122
-9,5,274~9,7,274
-4,8,11~6,8,11
-1,5,270~1,6,270
-4,7,277~4,9,277
-6,1,17~6,3,17
-2,5,95~2,8,95
-6,4,121~8,4,121
-0,5,9~3,5,9
-1,0,242~1,2,242
-4,6,79~4,8,79
-6,3,29~6,4,29
-0,2,118~0,3,118
-3,7,130~3,9,130
-3,4,242~3,6,242
-1,6,208~1,6,210
-3,7,26~3,9,26
-5,8,215~5,8,216
-9,0,4~9,2,4
-4,8,5~6,8,5
-1,7,255~1,7,257
-3,5,116~5,5,116
-2,8,125~3,8,125
-1,0,83~1,3,83
-4,7,253~6,7,253
-6,8,271~9,8,271
-7,0,11~7,2,11
-6,5,28~6,6,28
-
+#.###########################################################################################################################################
+#...###...#...#.......#...#.....#.........#...#...#...#...#...#.....#...#.......#...#...#.......#.....#...........#.....#...###...#.....#...#
+###.###.#.#.#.#.#####.#.#.#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#####.#.#.#.#.#.#####.#.###.#.#########.#.###.#.#.###.#.#.###.#.#.#
+#...#...#...#.#.#.....#.#.#...#.#.......#.#.#.#.#.#.#.#.#.#.#.#.#...#.#.#...#...#.#.#.#.#.#.....#.#...#.........#.#...#.#.#...#.#.#...#.#.#.#
+#.###.#######.#.#v#####.#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.#.#.###.#.###.#.###.#.#.#.#.#.#####.#.###########.#.###.#.#.###.#.#.###.#.#.#.#
+#...#...#.....#.#.>.###.#.#...#.#.....#.#.#.#.#.#.#.#.#.#...#...#.>.>.#...#.#...#.#...#...#.#...#.#.....#.......#.###.#.#.#...#.#.###.#.#.#.#
+###.###.#.#####.#v#.###.#.#.###.#.###.#.#.#.#.#.#.#.#.#.###########v#####.#.###.#.#########.#.#.#.#####.#.#######.###.#.#.#.###.#.###.#.#.#.#
+#...#...#.#...#.#.#.....#...#...#...#.#.#.#.#.#.#.#.#.#.#.........#.#.....#.#...#...#.......#.#.#.#.....#.......#.....#.#.#...#.#.#...#.#.#.#
+#.###.###.#.#.#.#.###########.#####.#.#.#.#.#.#.#.#.#.#.#.#######.#.#.#####.#.#####.#.#######.#.#.#.###########.#######.#.###.#.#.#.###.#.#.#
+#.#...###...#...#.....###...#...#...#...#.#.#.#.#...#...#.......#...#...#...#.#.>.>.#.....#...#.#.#.###...#...#.......#...###.#.#.#.#...#.#.#
+#.#.#################.###.#.###.#.#######.#.#.#.###############.#######.#.###.#.#v#######.#.###.#.#.###.#.#.#.#######.#######.#.#.#.#.###.#.#
+#.#...###.............#...#.....#.......#...#.#...#.......#...#.....###.#.#...#.#...#.....#.#...#.#...#.#.#.#.#.......#...###...#.#.#.....#.#
+#.###.###.#############.###############.#####.###.#.#####.#.#.#####.###.#.#.###.###.#.#####.#.###.###.#.#.#.#.#.#######.#.#######.#.#######.#
+#.#...#...#.........###.......#.>.>.....#...#.#...#.....#.#.#.....#...#.#.#.#...#...#...###.#...#.#...#.#.#.#.#.........#.....#...#.#.......#
+#.#.###.###.#######.#########.#.#v#######.#.#.#.#######.#.#.#####.###.#.#.#.#.###.#####.###.###.#.#.###.#.#.#.###############.#.###.#.#######
+#.#...#.#...#.....#.......###.#.#.#...###.#.#...#.......#.#.....#.#...#.#.#.#.#...#...#...#...#.#.#.#...#...#.#...............#.....#.......#
+#.###.#.#.###.###.#######.###.#.#.#.#.###.#.#####.#######.#####.#.#.###.#.#.#.#.###.#.###.###.#.#.#.#.#######.#.###########################.#
+#.#...#.#...#...#.........#...#.#.#.#.....#.....#.#.....#.......#...###...#...#.....#...#...#.#.#.#.#...#.....#.............###.............#
+#.#.###.###.###.###########.###.#.#.###########.#.#.###.###############################.###.#.#.#.#.###.#.#################.###.#############
+#...###.....###...........#.#...#.#.#...........#...###...........#...###...#...#...#...#...#.#.#.#.#...#.#...>.>.#.........#...#...#.......#
+#########################.#.#.###.#.#.###########################.#.#.###.#.#.#.#.#.#.###.###.#.#.#.#.###.#.###v#.#.#########.###.#.#.#####.#
+#...#.......#...........#.#.#...#...#.........#...#.............#...#...#.#...#...#...###.....#...#.#.#...#.###.#.#.......###...#.#.#.#.....#
+#.#.#.#####.#.#########.#.#.###.#############.#.#.#.###########.#######.#.#########################.#.#.###.###.#.#######.#####.#.#.#.#.#####
+#.#.#.....#.#.........#...#.....#...#.........#.#.#.#...#...###.........#...#...#...#...........#...#.#...#.#...#.........#...#...#...#.....#
+#.#.#####.#.#########.###########.#.#.#########.#.#.#.#.#.#.###############.#.#.#.#.#.#########.#.###.###.#.#.#############.#.#############.#
+#.#.#.....#.#.........#...###.....#.#...........#.#...#...#.............###...#...#...#.....#...#.....###...#...#...#.....#.#...###...#.....#
+#.#.#.#####.#.#########.#.###.#####.#############.#####################.###############.###.#.#################.#.#.#.###.#.###.###.#.#.#####
+#.#.#.....#.#.......###.#...#.....#.#.........#...#...#.................#...###.........###...#...#...#...#.....#.#.#...#.#...#.###.#.#...###
+#.#.#####.#.#######v###.###.#####.#.#.#######.#.###.#.#.#################.#.###.###############.#.#.#.#.#.#.#####.#.###.#.###.#.###.#.###v###
+#.#...#...#.......#.>.#.#...#.....#.#.......#...###.#.#...........#.....#.#...#.........#...#...#...#.#.#.#.....#.#.....#.#...#.#...#.#.>.###
+#.###.#.#########.#v#.#.#.###.#####.#######.#######.#.###########.#.###.#.###.#########.#.#.#.#######.#.#.#####.#.#######.#.###.#.###.#.#v###
+#.#...#.........#.#.#.#.#...#.....#.#...#...#.....#.#.....#...#...#.#...#...#.#...#.....#.#.#.#.......#.#.###...#.......#.#...#.#...#.#.#...#
+#.#.###########.#.#.#.#.###.#####.#.#.#.#v###.###.#.#####.#.#.#.###.#.#####.#.#.#.#.#####.#.#.#.#######.#.###v#########.#.###.#.###.#.#.###.#
+#.#.........###.#.#.#.#.#...#...#.#...#.>.>.#.#...#.....#.#.#...###.#.#...#.#.#.#.#.....#.#.#.#...#...#.#...>.>.#.....#.#.#...#.....#...#...#
+#.#########.###.#.#.#.#.#.###.#.#.#######v#.#.#.#######.#.#v#######.#.#.#.#.#.#.#.#####.#.#.#.###.#.#.#.#####v#.#.###.#.#.#.#############.###
+#.........#.#...#.#.#...#.#...#.#.....#...#.#.#...#.....#.>.>.....#.#.#.#.#.#...#...#...#.#...#...#.#.#.#.....#.#.###.#.#.#...#.........#...#
+#########.#.#.###.#.#####.#.###.#####.#.###.#.###.#.#######v#####.#.#.#.#.#.#######.#.###.#####.###.#.#.#.#####.#.###.#.#.###.#.#######.###.#
+#.........#...###...###...#.###.#.....#...#.#...#...###...#.#.....#.#.#.#.#...#.....#...#.....#.....#...#.....#.#...#...#.#...#...#...#.....#
+#.#####################.###.###.#.#######.#.###.#######.#.#.#.#####.#.#.#.###.#.#######v#####.###############.#.###.#####.#.#####.#.#.#######
+#.....................#...#...#.#.#.......#.....#.......#...#.#...#.#.#.#.#...#.......>.>.#...#####.....###...#...#.....#...#####...#.......#
+#####################.###.###.#.#.#.#############.###########.#.#.#.#.#.#.#.###########v#.#.#######.###.###.#####.#####.###################.#
+#...#...........#...#.#...#...#...#.......###...#...#.......#.#.#.#.#...#.#.###.........#...###.....#...#...#.....#.....#.....###...#.......#
+#.#.#.#########.#.#.#.#.###.#############.###.#.###.#.#####.#.#.#.#.#####.#.###.###############.#####.###.###.#####.#####.###.###.#.#.#######
+#.#...#.......#.#.#.#.#...#.#...#...#...#.....#...#...#.....#...#...###...#.#...#.......###...#.....#.....###.....#.#...#...#.....#...#...###
+#.#####.#####.#.#.#.#.###.#.#.#.#.#.#.#.#########.#####.###############.###.#.###.#####.###.#.#####.#############.#.#.#.###.###########.#.###
+#.#...#.#.....#...#...###.#.#.#...#...#.#.........#.....#.........#.....#...#.....#...#...#.#.#.....#...###...###...#.#...#.............#...#
+#.#.#.#.#.###############.#.#.#########.#.#########.#####.#######.#.#####.#########.#.###.#.#.#.#####.#.###.#.#######.###.#################.#
+#.#.#...#...###...#...###...#.........#.#.....#####.......#.....#.#.#.....#...###...#...#.#.#.#.......#.....#.#...#...#...#...###...#.......#
+#.#.#######.###.#.#.#.###############.#.#####.#############.###.#.#.#.#####.#.###.#####.#.#.#.###############.#.#.#.###.###.#.###.#.#.#######
+#...###...#.....#...#...#.............#.....#...#...........###...#.#.#.....#.....#...#.#.#.#.................#.#.#.#...#...#.#...#...#.....#
+#######.#.#############.#.#################.###.#.#################.#.#.###########.#.#.#.#.###################.#.#.#.###.###.#.#######.###.#
+#.......#.......#.......#.........#.......#.....#.................#...#.#...#.....#.#.#...#.........#.........#.#...#...#...#.#.......#.#...#
+#.#############.#.###############.#.#####.#######################.#####.#.#.#.###.#.#.#############v#.#######.#.#######.###.#.#######.#.#.###
+#...#...#...###...#...#...#...###...#...#.......#.................#.....#.#...###...#.........#...>.>.#.....#.#.#.......#...#.....###...#...#
+###.#.#.#.#.#######.#.#.#.#.#.#######.#.#######.#.#################.#####.###################.#.###v###.###.#.#.#.#######.#######.#########.#
+#...#.#.#.#.....###.#.#.#.#.#.###...#.#.........#.............#...#.......###...#...#.........#...#.###.###...#.#.....###.......#.#.........#
+#.###.#.#.#####.###.#.#.#.#.#.###.#.#.#######################.#.#.###########.#.#.#.#.###########.#.###.#######.#####.#########.#.#.#########
+#...#.#...#.....#...#.#.#.#.#...#.#.#.............#...........#.#...#...#.....#...#...#...........#...#...###...#.....#...#.....#.#.........#
+###.#.#####v#####.###.#.#.#.###.#.#.#############.#.###########.###.#.#.#.#############.#############.###.###.###.#####.#.#.#####.#########.#
+###...#...#.>.###...#.#.#.#...#.#.#...#...........#.......#...#.#...#.#.#.............#.......#...###...#...#.#...#...#.#.#...#...#...###...#
+#######.#.#v#.#####.#.#.#.###.#.#.###.#.#################.#.#.#.#.###.#.#############.#######.#.#.#####.###.#.#.###.#.#.#.###.#.###.#.###v###
+#.......#...#...###.#.#.#.###.#.#...#.#...###...###...#...#.#...#.#...#.#...#...#.....#...###...#...#...#...#.#...#.#.#.#.#...#.#...#.#.>.###
+#.#############.###.#.#.#.###.#.###.#.###v###.#.###.#.#v###.#####.#.###.#.#.#.#.#.#####.#.#########.#.###.###.###.#.#.#.#.#.###.#.###.#.#v###
+#.......#.....#.#...#.#.#.#...#...#.#...>.>.#.#.#...#.>.>.#.#.....#...#.#.#.#.#.#.#...#.#.#.....#...#.###.....###.#.#.#.#.#...#.#.###...#...#
+#######.#.###.#.#.###.#.#.#.#####.#.#####v#.#.#.#.#####v#.#.#.#######.#.#.#.#.#.#v#.#.#.#.#.###.#.###.###########.#.#.#.#.###.#.#.#########.#
+#######.#.###.#.#.#...#.#.#...###...###...#.#.#.#.#.....#...#...#...#.#.#.#.#.#.>.>.#.#.#.#.#...#.###.......#####.#.#.#.#...#.#...#...#...#.#
+#######.#.###.#.#.#.###.#.###.#########.###.#.#.#.#.###########.#.#.#.#.#.#.#.###v###.#.#.#.#.###.#########.#####.#.#.#.###.#.#####.#.#.#.#.#
+#.......#.#...#...#.....#.#...#.........###.#.#...#...........#.#.#.#.#.#.#...#...###...#...#...#.#.......#.....#...#.#.#...#.#.....#...#...#
+#.#######.#.#############.#.###.###########.#.###############.#.#.#.#.#.#.#####.###############.#.#.#####.#####.#####.#.#.###.#.#############
+#.........#.........#...#.#.#...#...#.....#.#.#...#...........#...#.#.#...#...#.....#...#...#...#.#.....#.#.....#...#.#.#...#.#.............#
+###################.#.#.#.#.#.###.#.#.###.#.#.#.#.#.###############.#.#####.#.#####.#.#.#.#.#.###.#####.#.#.#####.#.#.#.###.#.#############.#
+#...#...#...#.......#.#.#...#.....#...#...#...#.#.#.....#...#...###.#.#.....#.......#.#...#.#.....#.....#...#.....#.#...#...#...#...........#
+#.#.#.#.#.#.#.#######.#.###############.#######.#.#####.#.#.#.#.###.#.#.#############.#####.#######.#########.#####.#####.#####.#.###########
+#.#...#...#...#...###.#...#...#...#...#.....#...#.......#.#.#.#...#...#...#...#.....#.#.....#...###.......###.#.....#...#.......#...........#
+#.#############.#.###.###.#.#.#.#.#.#.#####.#.###########.#.#.###.#######.#.#.#.###.#.#.#####.#.#########.###.#.#####.#.###################.#
+#.#.............#...#...#.#.#.#.#...#.......#.............#...#...#...###...#...#...#.#.#...#.#.#...#.....#...#.....#.#.#...#.........#.....#
+#.#.###############.###.#.#.#.#v###############################.###.#.###########.###.#.#.#.#.#.#.#.#.#####.#######.#.#.#.#.#.#######.#.#####
+#...#...............###.#.#.#.>.>.#.......#.....................#...#...#...#...#...#.#.#.#.#.#.#.#.#.#####...#.....#.#.#.#.#.......#.#.....#
+#####.#################.#.#.###v#.#.#####.#.#####################.#####.#.#.#.#.###.#.#.#.#.#.#.#.#.#v#######.#.#####.#.#.#.#######.#.#####.#
+#...#.........#...#...#.#.#.###.#...#.....#.#.....#.......#.....#...#...#.#.#.#.#...#.#.#.#.#.#...#.>.>.#...#.#.#...#.#.#.#...#...#.#.#...#.#
+#.#.#########v#.#.#.#.#.#.#.###.#####.#####.#.###.#.#####.#.###.###.#.###.#.#.#.#v###.#.#.#.#.#######v#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.#.#.#.#
+#.#.......###.>.#.#.#...#.#.#...#...#...###...#...#.#.....#...#.#...#...#.#.#.#.>.>.#.#.#.#.#...#.....#.#.#.#.#.#.#.#.#.#...#.#.#.#.#.#.#...#
+#.#######.###v###.#.#####.#.#.###.#.###.#######.###.#.#######.#.#.#####.#.#.#.###v#.#.#.#.#.###.#.#####.#.#.#.#.#.#.#.#.###.#.#.#.#.#.#v#####
+#.......#.....###.#.....#...#.#...#.....#...###.....#.....###.#.#.#...#.#.#.#.#...#...#...#.....#.....#.#.#.#.#.#.#.#.#...#.#.#.#.#.#.>.#...#
+#######.#########.#####.#####.#.#########.#.#############.###.#.#.#.#.#.#.#.#.#.#####################.#.#.#.#.#.#.#.#.###.#.#.#.#.#.###v#.#.#
+#.....#.........#.#...#.#...#.#.....#...#.#...#...#...#...#...#.#...#.#.#.#.#.#.#...###.....#.....#...#...#.#.#.#.#.#...#.#.#.#.#...###...#.#
+#.###.#########.#.#.#.#.#.#.#.#####.#.#.#.###.#.#.#.#.#v###.###.#####.#.#.#.#.#.#.#.###.###.#.###.#.#######.#.#.#.#.###.#.#.#.#.###########.#
+#...#.#.........#...#...#.#...#...#.#.#.#.#...#.#.#.#.>.>...###.......#...#.#.#.#.#...#.#...#...#.#.......#.#.#.#.#.#...#.#.#...#...........#
+###.#.#.#################.#####.#.#.#.#.#.#.###.#.#.###v###################.#.#.#.###.#.#.#####.#.#######.#.#.#.#.#.#.###.#.#####.###########
+#...#...#.......#...#.....#.....#.#.#.#...#...#.#.#.###...#...........#...#...#...#...#.#.......#.#.......#...#...#.#.###.#.....#...........#
+#.#######.#####.#.#.#.#####.#####.#.#.#######.#.#.#.#####.#.#########.#.#.#########.###.#########.#.###############.#.###.#####.###########.#
+#...#.....#.....#.#.#.......#.....#...###...#...#...#.....#.#.........#.#.#.....###.....#...#.....#.....#.....#.....#.#...#.....#...#.....#.#
+###.#.#####.#####.#.#########.###########.#.#########.#####.#.#########.#.#.###.#########.#.#.#########.#.###.#.#####.#.###.#####.#.#.###.#.#
+#...#.#.....#...#.#.#.........#...###.....#.....#...#.......#...........#.#...#.#.........#...#...###...#.#...#.....#.#.#...#...#.#.#...#.#.#
+#.###.#.#####.#.#.#.#.#########.#.###.#########.#.#.#####################.###.#.#.#############.#.###.###.#.#######.#.#.#.###.#.#.#.###.#.#.#
+#.....#.....#.#.#.#.#...........#...#.......#...#.#.#...#...#.......#.....#...#.#.......#.....#.#.#...#...#.....#...#.#.#.#...#...#.....#.#.#
+###########.#.#.#.#.###############.#######.#.###.#.#.#.#.#.#.#####.#.#####.###.#######.#.###.#.#.#.###.#######.#.###.#.#.#.#############.#.#
+#.........#...#...#.....#.......#...#...#...#...#.#.#.#.#.#.#.....#.#.#...#...#.#.....#...#...#.#.#.....#...#...#...#.#...#.............#.#.#
+#.#######.#############.#.#####.#.###.#.#.#####.#.#.#.#.#.#.#####.#.#.#.#.###.#.#.###.#####.###.#.#######.#.#.#####.#.#################.#.#.#
+#.......#...............#.....#...###.#.#...#...#.#.#.#.#.#.###...#...#.#.#...#...#...#.....#...#.........#.#.....#.#...#.........#.....#...#
+#######.#####################v#######.#.###.#.###.#.#.#.#.#.###v#######.#.#.#######.###.#####.#############.#####.#.###.#.#######.#.#########
+#.......#.....#...#...#.....>.>.#.....#.....#...#.#.#.#...#.#.>.>.#...#.#.#...#.....###.#...#.............#.#...#.#.....#.......#.#...#...###
+#.#######.###.#.#.#.#.#.#####v#.#.#############.#.#.#.#####.#.#v#.#.#.#.#.###.#.#######v#.#.#############.#.#.#.#.#############.#.###.#.#.###
+#.........#...#.#.#.#.#.....#.#...#...#...#.....#.#.#.....#.#.#.#...#.#.#.#...#.#...#.>.>.#...###...#.....#...#...#...#...#...#.#.....#.#.###
+###########.###.#.#.#.#####.#.#####.#.#.#.#.#####.#.#####.#.#.#.#####.#.#.#.###.#.#.#.#v#####.###.#.#.#############.#.#.#.#.#.#.#######.#.###
+#...........#...#.#.#.###...#.#...#.#.#.#.#.....#.#.....#.#...#...###.#.#...###...#.#.#.###...#...#...###...###...#.#.#.#.#.#.#.........#...#
+#.###########.###.#.#.###.###.#.#.#.#.#.#.#####.#.#####.#.#######.###.#.###########.#.#.###.###.#########.#.###.#.#.#.#.#.#.#.#############.#
+#...........#...#.#.#...#.#...#.#.#.#...#.....#.#.#.....#.#.......#...#.....###...#...#...#.###.......#...#...#.#...#.#.#.#.#.#.......#...#.#
+###########.###.#.#.###.#.#.###.#.#.#########.#.#.#.#####.#.#######.#######.###.#.#######.#.#########.#.#####.#.#####.#.#.#.#.#.#####.#.#.#.#
+#.......###...#.#...#...#.#...#.#...#.........#...#.#...#.#.....###...#...#.#...#.###.....#.#...#...#.#.#.....#...#...#.#.#.#.#.....#.#.#...#
+#.#####.#####.#.#####.###.###.#.#####.#############.#.#.#.#####.#####.#.#.#.#.###.###.#####.#.#.#.#.#v#.#.#######.#.###.#.#.#.#####v#.#.#####
+#.....#...#...#.....#...#.###...#...#...........###...#.#.#...#.....#...#...#...#...#.....#.#.#.#.#.>.>.#.....#...#...#.#.#.#.#...>.#...#...#
+#####.###.#v#######.###.#.#######.#.###########.#######.#.#.#.#####.###########.###.#####.#.#.#.#.###v#######.#.#####.#.#.#.#.#.###v#####.#.#
+#####.#...#.>...#...###.#.....#...#.###.........#...###...#.#.......###.....###...#.......#...#.#.###.......#.#.....#.#.#.#.#.#...#.......#.#
+#####.#.###v###.#.#####.#####.#.###.###.#########.#.#######.###########.###.#####.#############.#.#########.#.#####.#.#.#.#.#.###.#########.#
+#.....#.....###...#...#.......#...#.#...#...#.....#...#...#.#...#...#...#...#.....#.......#...#.#.#.........#.#.....#.#.#.#.#.#...#.........#
+#.#################.#.###########.#.#.###.#.#.#######.#.#.#.#.#.#.#.#.###.###.#####.#####.#.#.#.#.#.#########.#.#####.#.#.#.#.#.###.#########
+#.........#.........#...#.....#...#.#.....#...#.......#.#.#...#...#...#...###.#...#.#.....#.#.#...#.........#.#...#...#.#...#...###...#...###
+#########.#.###########.#.###.#.###.###########.#######.#.#############.#####.#.#.#.#.#####.#.#############.#.###.#.###.#############.#.#.###
+#.........#.#...........#.#...#...#...........#...#...#.#.###...........#...#...#...#.......#...#...........#.#...#...#.###...#...#...#.#...#
+#.#########.#.###########.#.#####.###########.###.#.#.#.#.###.###########.#.###################.#.###########.#.#####.#.###.#.#.#.#.###.###.#
+#.#.....#...#.#...........#...#...#...#.....#.....#.#.#.#...#...........#.#.###.......#...#.....#...........#...#...#...#...#...#.#.....#...#
+#.#.###.#.###.#.#############.#.###.#.#.###.#######.#.#.###.###########.#.#.###.#####.#.#.#.###############.#####.#.#####.#######.#######.###
+#...#...#.###...#...#...#.....#.....#.#.#...#...###.#.#.#...###.........#.#...#.....#...#...#####...###.....###...#.#...#.......#.....#...###
+#####.###.#######.#.#.#.#.###########.#.#.###.#.###.#.#.#.#####v#########.###.#####.#############.#.###.#######.###.#.#.#######.#####.#.#####
+#...#...#...#.....#...#...#.......###...#.....#.#...#.#.#...#.>.>.#.....#.#...#...#.....###...#...#.....#...###.#...#.#.#.....#.....#...#...#
+#.#.###.###.#.#############.#####.#############.#.###.#.###.#.###.#.###.#.#.###.#.#####.###.#.#.#########.#.###.#.###.#.#.###.#####.#####.#.#
+#.#.....#...#...#...###...#.#.....#...#.........#...#.#...#.#.###.#.#...#.#.#...#.#...#.....#.#.........#.#.###.#.###.#.#.#...#...#...#...#.#
+#.#######.#####.#.#.###.#.#.#.#####.#.#.###########.#.###.#.#.###.#.#.###.#.#.###.#.#.#######.#########v#.#.###.#.###.#.#.#.###v#.###.#.###.#
+#...#.....#...#...#...#.#.#.#.#...#.#.#.......###...#.#...#.#.#...#.#...#.#.#...#.#.#.#.......#...#...>.>.#...#.#...#.#.#.#.#.>.#.....#...#.#
+###.#.#####.#.#######.#.#.#.#.#.#.#.#.#######.###.###.#.###.#.#.###.###.#.#.###.#.#.#.#v#######.#.#.#########.#.###.#.#.#.#.#.#v#########.#.#
+#...#.#.....#...#...#.#.#.#.#.#.#.#.#.#####...#...###.#.###.#.#...#.#...#.#.....#.#.#.>.>.#...#.#.#.#...#...#.#.###.#.#.#.#...#...#...#...#.#
+#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.#####v###.#####.#.###.#.###.#.#.###.#######.#.#####.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#######.#.#.#.###.#
+#...#.#.#.....#...#...#.#.#.#.#.#.#.#...#.>.>.#...#...#...#.#.#...#.#...#.###.....#.....#.#.#.#.#.#...#...#.#.#...#...#.#.#.......#.#.#...#.#
+###.#.#.#.###.#########.#.#.#.#.#.#.###.#.###.###.#.#####.#.#.#.###.###.#.###.#########.#.#.#.#.#.#########.#.###.#####.#.#.#######.#.###.#.#
+###.#.#.#.###.......#...#.#.#...#.#.#...#.###.#...#.....#.#...#.....###.#...#.#...#.....#.#.#.#.#...#.....#.#.#...#.....#.#.....#...#.#...#.#
+###.#.#.#.#########.#.###.#.#####.#.#.###.###.#.#######.#.#############.###.#.#.#.#.#####.#.#.#.###.#.###.#.#.#.###.#####.#####.#.###.#.###.#
+#...#.#.#.#.........#.#...#.....#.#.#...#.###.#.#.......#.....#.........#...#.#.#.#.....#.#.#.#.#...#...#.#.#.#...#...#...#.....#.#...#.#...#
+#.###.#.#.#.#########.#.#######.#.#.###.#.###.#.#.###########.#.#########.###.#.#.#####.#.#.#.#.#.#####.#.#.#.###.###.#.###.#####.#.###.#.###
+#.....#...#...........#.........#...###...###...#.............#...........###...#.......#...#...#.......#...#.....###...###.......#.....#...#
+###########################################################################################################################################.#
diff --git a/src/main.rs b/src/main.rs
index 4f96f40..92e2f71 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -25,74 +25,75 @@ extern crate test;
pub mod util;
pub use util::prelude::*;
-#[derive(Copy, Clone)]
-struct Piece {
- a: [u16; 3],
- b: [u16; 3],
+pub fn iterg<I: Iterator<Item = (u8, u8, u16)>>(
+ start: (u8, u8, u16, HashSet<(u8, u8)>),
+ graph: &mut impl Fn((u8, u8, u16)) -> I,
+ end: &mut impl Fn((u8, u8)) -> bool,
+ finally: &mut impl FnMut(u16),
+ i: &[&[u8]],
+) {
+ if end((start.0, start.1)) {
+ finally(start.2);
+ } else {
+ graph((start.0, start.1, start.2))
+ .map(|(a, b, n)| {
+ let mut m = start.3.clone();
+ if m.insert((a, b)) {
+ iterg((a, b, n, m), graph, end, finally, i)
+ } else {
+ // if n > 60 {
+ // for (line, y) in i.iter().ι::<u8>() {
+ // for (&elem, x) in line.iter().ι::<u8>() {
+ // if m.contains(&(x, y)) {
+ // print!("O");
+ // } else {
+ // print!("{}", elem as char);
+ // }
+ // }
+ // println!();
+ // }
+ // }
+ }
+ })
+ .Θ();
+ };
}
+
pub fn run(i: &str) -> impl Display {
- let mut pieces = vec![];
- let mut i = i.as_bytes();
- while i.len() > 0 {
- pieces.push(Piece {
- a: 読む::迄::<u16>(&mut i, b',')
- .and(読む::迄(&mut i, b','))
- .and(読む::迄(&mut i, b'~')),
- b: 読む::迄::<u16>(&mut i, b',')
- .and(読む::迄(&mut i, b','))
- .and(読む::迄または完了(&mut i, b'\n')),
- });
- }
- pieces.sort_unstable_by(|a, b| a.a[2].cmp(&b.a[2]));
- let mut m: HashMap<(u16, u16), u16> = HashMap::default();
- for p in pieces.iter_mut() {
- let a = (p.a[0]..=p.b[0]).flat_map(|x| (p.a[1]..=p.b[1]).map(move |y| (x, y)));
- let k = a.clone().map(|x| *m.get(&x).unwrap_or(&0)).max().unwrap() + 1;
- for e in a {
- m.insert(e, k + p.b[2] - p.a[2]);
- }
- *p = Piece {
- a: p.a.trunc().and(k),
- b: p.b.trunc().and(k + p.b[2] - p.a[2]),
- };
- }
- // (0..pieces.len())
- // .filter_map(|i| {
- // let mut m = HashMap::new();
- // for (p, j) in pieces.iter().ι::<usize>() {
- // if j == i {
- // continue;
- // }
- // let a = (p.a[0]..=p.b[0]).flat_map(|x| (p.a[1]..=p.b[1]).map(move |y| (x, y)));
- // let k = a.clone().map(|x| *m.get(&x).unwrap_or(&0)).max().unwrap() + 1;
- // for e in a {
- // m.insert(e, k + p.b[2] - p.a[2]);
- // }
- // if k < p.a[2] {
- // return None;
- // }
- // }
- // return Some(1);
- // })
- // .sum::<u64>()
- (0..pieces.len())
- .map(|i| {
- let mut m = HashMap::new();
- let mut n = 0;
- for (p, j) in pieces.iter().ι::<usize>() {
- if j == i {
- continue;
- }
- let a = (p.a[0]..=p.b[0]).flat_map(|x| (p.a[1]..=p.b[1]).map(move |y| (x, y)));
- let k = a.clone().map(|x| *m.get(&x).unwrap_or(&0)).max().unwrap() + 1;
- for e in a {
- m.insert(e, k + p.b[2] - p.a[2]);
- }
- n += (k < p.a[2]) as u16;
- }
- n as u64
- })
- .sum::<u64>()
+ let x = i.行().collect_vec();
+ let i = x.as_slice();
+ let end = (x.len() as u8 - 2, x.len() as u8 - 1);
+ let mut sum = 0;
+ iterg(
+ (1u8, 0u8, 0u16, HashSet::from_iter([(1, 0)])),
+ &mut |(x, y, n)| {
+ let v = match i[y.nat()][x.nat()] {
+ b'>' => vec![(x + 1, y, n + 1)],
+ b'<' => vec![(x - 1, y, n + 1)],
+ b'^' => vec![(x, y - 1, n + 1)],
+ b'v' => vec![(x, y + 1, n + 1)],
+ _ => [
+ Dir::N + (x, y),
+ Dir::E + (x, y),
+ Dir::S + (x, y),
+ Dir::W + (x, y),
+ ]
+ .into_iter()
+ .flatten()
+ .fl(lt(i.len() as u8))
+ .fr(lt(i.len() as u8))
+ .filter(|(x, y)| i[y.nat()][x.nat()] != b'#')
+ .map(|(x, y)| (x, y, n + 1))
+ .collect_vec(),
+ };
+
+ v.into_iter()
+ },
+ &mut |(x, y)| (x, y) == end,
+ &mut |x| sum = sum.max(x),
+ i,
+ );
+ sum
}
fn main() {