15
|
1 /*
|
|
2 * ロジスティック回帰分析
|
|
3 * Last Change: 2018-01-21 Sun 17:15:18.
|
|
4 */
|
|
5 package main
|
|
6
|
|
7 import (
|
|
8 "bufio"
|
|
9 "fmt"
|
|
10 "image"
|
|
11 "image/color"
|
|
12 "image/png"
|
|
13 "log"
|
|
14 "math"
|
|
15 "os"
|
|
16 "strconv"
|
|
17 "strings"
|
|
18 "time"
|
|
19 )
|
|
20
|
|
21 var RMAX int // 最大繰り返し回数
|
|
22 var NN, MM int // 説明変数の次元
|
|
23 var lr float64 // 学習率
|
|
24 var vb []float64 // 重み(切片と傾き)ベクトル
|
|
25 var db float64 // vb の微増分(デルタ)
|
|
26 var mx [][]float64 // 説明変数
|
|
27 var vy []float64 // 結果変数
|
|
28 var start time.Time
|
|
29
|
|
30 func init() {
|
|
31 start = time.Now()
|
|
32
|
|
33 RMAX = 500
|
|
34
|
|
35 lr = 0.005
|
|
36 db = 0.0001
|
|
37
|
|
38 NN, MM = 1000, 3 // i, j
|
|
39 vb = make( []float64, MM )
|
|
40 vy = make( []float64, NN )
|
|
41 mx = make( [][]float64, NN )
|
|
42 for i := range mx {
|
|
43 mx[i] = make( []float64, MM )
|
|
44 mx[i][0] = 1.0
|
|
45 }
|
|
46
|
|
47 for j := range vb {
|
|
48 vb[j] = 1.0
|
|
49 }
|
|
50
|
|
51 f, err := os.Open( "input.txt" )
|
|
52 if err != nil {
|
|
53 log.Fatal( err )
|
|
54 }
|
|
55 scanner := bufio.NewScanner( f )
|
|
56 var buf []string
|
|
57 i := 0
|
|
58 for scanner.Scan() {
|
|
59 buf = strings.Split( scanner.Text(), "\t" )
|
|
60 for j := range vb {
|
|
61 if s, err := strconv.ParseFloat( buf[j], 64 ); err != nil {
|
|
62 log.Fatal( err )
|
|
63 } else {
|
|
64 if j == MM - 1 {
|
|
65 vy[i] = s
|
|
66 } else {
|
|
67 mx[i][j+1] = s
|
|
68 }
|
|
69 }
|
|
70 }
|
|
71 i++
|
|
72 }
|
|
73 if err := scanner.Err(); err != nil {
|
|
74 log.Fatal( err )
|
|
75 }
|
|
76 f.Close()
|
|
77 }
|
|
78
|
|
79 func main() {
|
|
80
|
|
81 for n := 0; n < RMAX; n++ {
|
|
82 dcdb := f_dCdb() // 対数尤度の勾配を計算
|
|
83 odds := f_odds() // オッズを計算
|
|
84
|
|
85 for j := range dcdb {
|
|
86 vb[j] -= dcdb[j] * lr // 重み係数を更新
|
|
87 }
|
|
88
|
|
89 fmt.Printf( "%04d> %7.2f %6.2f %3.1f\n", n, dcdb, vb, odds ) // 出力
|
|
90 }
|
|
91 fmt.Println( time.Now().Sub( start ) )
|
|
92 //makegraph()
|
|
93 }
|
|
94
|
|
95 func f_dCdb() []float64 {
|
|
96
|
|
97 dcdb := make( []float64, MM )
|
|
98
|
|
99 for p := range vb {
|
|
100 for i:= 0; i < NN; i++ {
|
|
101 var xb0, xb float64
|
|
102 for j:= range vb {
|
|
103 d := 0.0
|
|
104 if j == p {
|
|
105 d = db
|
|
106 }
|
|
107 xb0 += mx[i][j] * vb[j]
|
|
108 xb += mx[i][j] * ( vb[j] + d )
|
|
109 }
|
|
110 s0 := ( vy[i] - 1 ) * xb0 - math.Log1p( math.Exp( - ( xb0 ) ) )
|
|
111 s := ( vy[i] - 1 ) * xb - math.Log1p( math.Exp( - ( xb ) ) )
|
|
112 dcdb[p] += - ( s - s0 ) / db
|
|
113 }
|
|
114 }
|
|
115 return dcdb
|
|
116 }
|
|
117
|
|
118 func f_odds() []float64 {
|
|
119 odds := make( []float64, MM )
|
|
120 for j:= range vb {
|
|
121 odds[j] = math.Exp( vb[j] )
|
|
122 }
|
|
123 return odds
|
|
124 }
|
|
125
|
|
126 func makegraph() {
|
|
127 const width, height = 256, 256
|
|
128 img := image.NewNRGBA( image.Rect( 0, 0, width, height ) )
|
|
129 for y := 0; y < height; y++ {
|
|
130 for x := 0; x < width; x++ {
|
|
131 img.Set( x, y, color.NRGBA{
|
|
132 R: uint8( ( x + y ) & 255 ),
|
|
133 G: uint8( ( x + y ) << 1 & 255 ),
|
|
134 B: uint8( ( x + y ) << 2 & 255 ),
|
|
135 A: 255,
|
|
136 } )
|
|
137 }
|
|
138 }
|
|
139
|
|
140 f, err := os.Create( "image.png" )
|
|
141 if err != nil {
|
|
142 log.Fatal( err )
|
|
143 }
|
|
144
|
|
145 if err := png.Encode( f, img ); err != nil {
|
|
146 f.Close()
|
|
147 log.Fatal( err )
|
|
148 }
|
|
149
|
|
150 if err := f.Close(); err != nil {
|
|
151 log.Fatal( err )
|
|
152 }
|
|
153 }
|
|
154
|
|
155 /* - input.txt - */
|
|
156 /*
|
|
157 0 0 0
|
|
158 0 0 0
|
|
159 0 0 0
|
|
160 0 0 0
|
|
161 0 0 0
|
|
162 0 0 0
|
|
163 0 0 0
|
|
164 0 0 0
|
|
165 0 0 0
|
|
166 0 0 0
|
|
167 0 0 0
|
|
168 0 0 0
|
|
169 0 0 0
|
|
170 0 0 0
|
|
171 0 0 0
|
|
172 0 0 0
|
|
173 0 0 0
|
|
174 0 0 0
|
|
175 0 0 0
|
|
176 0 0 0
|
|
177 0 0 0
|
|
178 0 0 0
|
|
179 0 0 0
|
|
180 0 0 0
|
|
181 0 0 0
|
|
182 0 0 0
|
|
183 0 0 0
|
|
184 0 0 0
|
|
185 0 0 0
|
|
186 0 0 0
|
|
187 0 0 0
|
|
188 0 0 0
|
|
189 0 0 0
|
|
190 0 0 0
|
|
191 0 0 0
|
|
192 0 0 0
|
|
193 0 0 0
|
|
194 0 0 0
|
|
195 0 0 0
|
|
196 0 0 0
|
|
197 0 0 0
|
|
198 0 0 0
|
|
199 0 0 0
|
|
200 0 0 0
|
|
201 0 0 0
|
|
202 0 0 0
|
|
203 0 0 0
|
|
204 0 0 0
|
|
205 0 0 0
|
|
206 0 0 0
|
|
207 0 0 0
|
|
208 0 0 0
|
|
209 0 0 0
|
|
210 0 0 0
|
|
211 0 0 0
|
|
212 0 0 0
|
|
213 0 0 0
|
|
214 0 0 0
|
|
215 0 0 0
|
|
216 0 0 0
|
|
217 0 0 0
|
|
218 0 0 0
|
|
219 0 0 0
|
|
220 0 0 0
|
|
221 0 0 0
|
|
222 0 0 0
|
|
223 0 0 0
|
|
224 0 0 0
|
|
225 0 0 0
|
|
226 0 0 0
|
|
227 0 0 0
|
|
228 0 0 0
|
|
229 0 0 0
|
|
230 0 0 0
|
|
231 0 0 0
|
|
232 0 0 0
|
|
233 0 0 0
|
|
234 0 0 0
|
|
235 0 0 0
|
|
236 0 0 0
|
|
237 0 0 0
|
|
238 0 0 0
|
|
239 0 0 0
|
|
240 0 0 0
|
|
241 0 0 0
|
|
242 0 0 0
|
|
243 0 0 0
|
|
244 0 0 0
|
|
245 0 0 0
|
|
246 0 0 0
|
|
247 0 0 0
|
|
248 0 0 0
|
|
249 0 0 0
|
|
250 0 0 0
|
|
251 0 0 0
|
|
252 0 0 0
|
|
253 0 0 0
|
|
254 0 0 0
|
|
255 0 0 0
|
|
256 0 0 0
|
|
257 0 0 0
|
|
258 0 0 0
|
|
259 0 0 0
|
|
260 0 0 0
|
|
261 0 0 0
|
|
262 0 0 0
|
|
263 0 0 0
|
|
264 0 0 0
|
|
265 0 0 0
|
|
266 0 0 0
|
|
267 0 0 0
|
|
268 0 0 0
|
|
269 0 0 0
|
|
270 0 0 0
|
|
271 0 0 0
|
|
272 0 0 0
|
|
273 0 0 0
|
|
274 0 0 0
|
|
275 0 0 0
|
|
276 0 0 0
|
|
277 0 0 0
|
|
278 0 0 0
|
|
279 0 0 0
|
|
280 0 0 0
|
|
281 0 0 0
|
|
282 0 0 0
|
|
283 0 0 0
|
|
284 0 0 0
|
|
285 0 0 0
|
|
286 0 0 0
|
|
287 0 0 0
|
|
288 0 0 0
|
|
289 0 0 0
|
|
290 0 0 0
|
|
291 0 0 0
|
|
292 0 0 0
|
|
293 0 0 0
|
|
294 0 0 0
|
|
295 0 0 0
|
|
296 0 0 0
|
|
297 0 0 0
|
|
298 0 0 0
|
|
299 0 0 0
|
|
300 0 0 0
|
|
301 0 0 0
|
|
302 0 0 0
|
|
303 0 0 0
|
|
304 0 0 0
|
|
305 0 0 0
|
|
306 0 0 0
|
|
307 0 0 0
|
|
308 0 0 0
|
|
309 0 0 0
|
|
310 0 0 0
|
|
311 0 0 0
|
|
312 0 0 0
|
|
313 0 0 0
|
|
314 0 0 0
|
|
315 0 0 0
|
|
316 0 0 0
|
|
317 0 0 0
|
|
318 0 0 0
|
|
319 0 0 0
|
|
320 0 0 0
|
|
321 0 0 0
|
|
322 0 0 0
|
|
323 0 0 0
|
|
324 0 0 0
|
|
325 0 0 0
|
|
326 0 0 0
|
|
327 0 0 0
|
|
328 0 0 0
|
|
329 0 0 0
|
|
330 0 0 0
|
|
331 0 0 0
|
|
332 0 0 0
|
|
333 0 0 0
|
|
334 0 0 0
|
|
335 0 0 0
|
|
336 0 0 0
|
|
337 0 0 0
|
|
338 0 0 0
|
|
339 0 0 0
|
|
340 0 0 0
|
|
341 0 0 0
|
|
342 0 0 0
|
|
343 0 0 0
|
|
344 0 0 0
|
|
345 0 0 0
|
|
346 0 0 0
|
|
347 0 0 0
|
|
348 0 0 0
|
|
349 0 0 0
|
|
350 0 0 0
|
|
351 0 0 0
|
|
352 0 0 0
|
|
353 0 0 0
|
|
354 0 0 0
|
|
355 0 0 0
|
|
356 0 0 0
|
|
357 0 0 0
|
|
358 0 0 0
|
|
359 0 0 0
|
|
360 0 0 0
|
|
361 0 0 0
|
|
362 0 0 0
|
|
363 0 0 0
|
|
364 0 0 1
|
|
365 0 0 1
|
|
366 0 0 1
|
|
367 0 0 1
|
|
368 0 0 1
|
|
369 0 0 1
|
|
370 0 0 1
|
|
371 0 0 1
|
|
372 0 0 1
|
|
373 0 0 1
|
|
374 0 0 1
|
|
375 0 0 1
|
|
376 0 0 1
|
|
377 0 0 1
|
|
378 0 0 1
|
|
379 0 0 1
|
|
380 0 0 1
|
|
381 0 0 1
|
|
382 0 0 1
|
|
383 0 0 1
|
|
384 0 0 1
|
|
385 0 0 1
|
|
386 0 0 1
|
|
387 0 1 0
|
|
388 0 1 0
|
|
389 0 1 0
|
|
390 0 1 0
|
|
391 0 1 0
|
|
392 0 1 0
|
|
393 0 1 0
|
|
394 0 1 0
|
|
395 0 1 0
|
|
396 0 1 0
|
|
397 0 1 0
|
|
398 0 1 0
|
|
399 0 1 0
|
|
400 0 1 0
|
|
401 0 1 0
|
|
402 0 1 0
|
|
403 0 1 0
|
|
404 0 1 0
|
|
405 0 1 1
|
|
406 0 1 1
|
|
407 1 0 0
|
|
408 1 0 0
|
|
409 1 0 0
|
|
410 1 0 0
|
|
411 1 0 0
|
|
412 1 0 0
|
|
413 1 0 0
|
|
414 1 0 0
|
|
415 1 0 0
|
|
416 1 0 0
|
|
417 1 0 0
|
|
418 1 0 0
|
|
419 1 0 0
|
|
420 1 0 0
|
|
421 1 0 0
|
|
422 1 0 0
|
|
423 1 0 0
|
|
424 1 0 0
|
|
425 1 0 0
|
|
426 1 0 0
|
|
427 1 0 0
|
|
428 1 0 0
|
|
429 1 0 0
|
|
430 1 0 0
|
|
431 1 0 0
|
|
432 1 0 0
|
|
433 1 0 0
|
|
434 1 0 0
|
|
435 1 0 0
|
|
436 1 0 0
|
|
437 1 0 0
|
|
438 1 0 0
|
|
439 1 0 0
|
|
440 1 0 0
|
|
441 1 0 0
|
|
442 1 0 0
|
|
443 1 0 0
|
|
444 1 0 0
|
|
445 1 0 0
|
|
446 1 0 0
|
|
447 1 0 0
|
|
448 1 0 0
|
|
449 1 0 0
|
|
450 1 0 0
|
|
451 1 0 0
|
|
452 1 0 0
|
|
453 1 0 0
|
|
454 1 0 0
|
|
455 1 0 0
|
|
456 1 0 0
|
|
457 1 0 0
|
|
458 1 0 0
|
|
459 1 0 0
|
|
460 1 0 0
|
|
461 1 0 0
|
|
462 1 0 0
|
|
463 1 0 0
|
|
464 1 0 0
|
|
465 1 0 0
|
|
466 1 0 0
|
|
467 1 0 0
|
|
468 1 0 0
|
|
469 1 0 0
|
|
470 1 0 0
|
|
471 1 0 0
|
|
472 1 0 0
|
|
473 1 0 0
|
|
474 1 0 0
|
|
475 1 0 0
|
|
476 1 0 0
|
|
477 1 0 0
|
|
478 1 0 0
|
|
479 1 0 0
|
|
480 1 0 0
|
|
481 1 0 0
|
|
482 1 0 0
|
|
483 1 0 0
|
|
484 1 0 0
|
|
485 1 0 0
|
|
486 1 0 0
|
|
487 1 0 0
|
|
488 1 0 0
|
|
489 1 0 0
|
|
490 1 0 0
|
|
491 1 0 0
|
|
492 1 0 0
|
|
493 1 0 0
|
|
494 1 0 0
|
|
495 1 0 0
|
|
496 1 0 0
|
|
497 1 0 0
|
|
498 1 0 0
|
|
499 1 0 0
|
|
500 1 0 0
|
|
501 1 0 0
|
|
502 1 0 0
|
|
503 1 0 0
|
|
504 1 0 0
|
|
505 1 0 0
|
|
506 1 0 0
|
|
507 1 0 0
|
|
508 1 0 0
|
|
509 1 0 0
|
|
510 1 0 0
|
|
511 1 0 0
|
|
512 1 0 0
|
|
513 1 0 0
|
|
514 1 0 0
|
|
515 1 0 0
|
|
516 1 0 0
|
|
517 1 0 0
|
|
518 1 0 0
|
|
519 1 0 0
|
|
520 1 0 0
|
|
521 1 0 0
|
|
522 1 0 0
|
|
523 1 0 0
|
|
524 1 0 0
|
|
525 1 0 0
|
|
526 1 0 0
|
|
527 1 0 0
|
|
528 1 0 0
|
|
529 1 0 0
|
|
530 1 0 0
|
|
531 1 0 0
|
|
532 1 0 0
|
|
533 1 0 0
|
|
534 1 0 0
|
|
535 1 0 0
|
|
536 1 0 0
|
|
537 1 0 0
|
|
538 1 0 0
|
|
539 1 0 0
|
|
540 1 0 0
|
|
541 1 0 0
|
|
542 1 0 0
|
|
543 1 0 0
|
|
544 1 0 0
|
|
545 1 0 0
|
|
546 1 0 0
|
|
547 1 0 0
|
|
548 1 0 0
|
|
549 1 0 0
|
|
550 1 0 0
|
|
551 1 0 0
|
|
552 1 0 0
|
|
553 1 0 0
|
|
554 1 0 0
|
|
555 1 0 0
|
|
556 1 0 0
|
|
557 1 0 0
|
|
558 1 0 0
|
|
559 1 0 0
|
|
560 1 0 0
|
|
561 1 0 0
|
|
562 1 0 0
|
|
563 1 0 0
|
|
564 1 0 0
|
|
565 1 0 0
|
|
566 1 0 0
|
|
567 1 0 0
|
|
568 1 0 0
|
|
569 1 0 0
|
|
570 1 0 0
|
|
571 1 0 0
|
|
572 1 0 0
|
|
573 1 0 0
|
|
574 1 0 0
|
|
575 1 0 0
|
|
576 1 0 0
|
|
577 1 0 0
|
|
578 1 0 0
|
|
579 1 0 0
|
|
580 1 0 0
|
|
581 1 0 0
|
|
582 1 0 0
|
|
583 1 0 0
|
|
584 1 0 0
|
|
585 1 0 0
|
|
586 1 0 0
|
|
587 1 0 0
|
|
588 1 0 0
|
|
589 1 0 0
|
|
590 1 0 0
|
|
591 1 0 0
|
|
592 1 0 0
|
|
593 1 0 0
|
|
594 1 0 0
|
|
595 1 0 0
|
|
596 1 0 0
|
|
597 1 0 0
|
|
598 1 0 0
|
|
599 1 0 0
|
|
600 1 0 0
|
|
601 1 0 0
|
|
602 1 0 0
|
|
603 1 0 0
|
|
604 1 0 0
|
|
605 1 0 0
|
|
606 1 0 0
|
|
607 1 0 0
|
|
608 1 0 0
|
|
609 1 0 0
|
|
610 1 0 0
|
|
611 1 0 0
|
|
612 1 0 0
|
|
613 1 0 0
|
|
614 1 0 0
|
|
615 1 0 0
|
|
616 1 0 0
|
|
617 1 0 0
|
|
618 1 0 0
|
|
619 1 0 0
|
|
620 1 0 0
|
|
621 1 0 0
|
|
622 1 0 0
|
|
623 1 0 0
|
|
624 1 0 0
|
|
625 1 0 0
|
|
626 1 0 0
|
|
627 1 0 0
|
|
628 1 0 0
|
|
629 1 0 0
|
|
630 1 0 0
|
|
631 1 0 0
|
|
632 1 0 0
|
|
633 1 0 0
|
|
634 1 0 0
|
|
635 1 0 0
|
|
636 1 0 0
|
|
637 1 0 0
|
|
638 1 0 0
|
|
639 1 0 0
|
|
640 1 0 0
|
|
641 1 0 0
|
|
642 1 0 0
|
|
643 1 0 0
|
|
644 1 0 0
|
|
645 1 0 0
|
|
646 1 0 0
|
|
647 1 0 0
|
|
648 1 0 0
|
|
649 1 0 0
|
|
650 1 0 0
|
|
651 1 0 0
|
|
652 1 0 0
|
|
653 1 0 0
|
|
654 1 0 0
|
|
655 1 0 0
|
|
656 1 0 0
|
|
657 1 0 0
|
|
658 1 0 0
|
|
659 1 0 0
|
|
660 1 0 0
|
|
661 1 0 0
|
|
662 1 0 0
|
|
663 1 0 0
|
|
664 1 0 0
|
|
665 1 0 0
|
|
666 1 0 0
|
|
667 1 0 0
|
|
668 1 0 0
|
|
669 1 0 0
|
|
670 1 0 0
|
|
671 1 0 0
|
|
672 1 0 0
|
|
673 1 0 0
|
|
674 1 0 0
|
|
675 1 0 0
|
|
676 1 0 0
|
|
677 1 0 0
|
|
678 1 0 0
|
|
679 1 0 0
|
|
680 1 0 0
|
|
681 1 0 0
|
|
682 1 0 0
|
|
683 1 0 0
|
|
684 1 0 0
|
|
685 1 0 0
|
|
686 1 0 0
|
|
687 1 0 0
|
|
688 1 0 0
|
|
689 1 0 0
|
|
690 1 0 0
|
|
691 1 0 0
|
|
692 1 0 0
|
|
693 1 0 0
|
|
694 1 0 0
|
|
695 1 0 0
|
|
696 1 0 0
|
|
697 1 0 0
|
|
698 1 0 0
|
|
699 1 0 0
|
|
700 1 0 0
|
|
701 1 0 0
|
|
702 1 0 0
|
|
703 1 0 0
|
|
704 1 0 0
|
|
705 1 0 0
|
|
706 1 0 0
|
|
707 1 0 0
|
|
708 1 0 0
|
|
709 1 0 0
|
|
710 1 0 0
|
|
711 1 0 0
|
|
712 1 0 0
|
|
713 1 0 0
|
|
714 1 0 0
|
|
715 1 0 0
|
|
716 1 0 0
|
|
717 1 0 0
|
|
718 1 0 0
|
|
719 1 0 0
|
|
720 1 0 0
|
|
721 1 0 0
|
|
722 1 0 0
|
|
723 1 0 0
|
|
724 1 0 0
|
|
725 1 0 0
|
|
726 1 0 0
|
|
727 1 0 0
|
|
728 1 0 0
|
|
729 1 0 0
|
|
730 1 0 0
|
|
731 1 0 0
|
|
732 1 0 0
|
|
733 1 0 0
|
|
734 1 0 0
|
|
735 1 0 0
|
|
736 1 0 0
|
|
737 1 0 0
|
|
738 1 0 0
|
|
739 1 0 0
|
|
740 1 0 0
|
|
741 1 0 0
|
|
742 1 0 0
|
|
743 1 0 0
|
|
744 1 0 0
|
|
745 1 0 0
|
|
746 1 0 0
|
|
747 1 0 0
|
|
748 1 0 0
|
|
749 1 0 0
|
|
750 1 0 0
|
|
751 1 0 0
|
|
752 1 0 0
|
|
753 1 0 0
|
|
754 1 0 0
|
|
755 1 0 0
|
|
756 1 0 0
|
|
757 1 0 0
|
|
758 1 0 0
|
|
759 1 0 0
|
|
760 1 0 0
|
|
761 1 0 0
|
|
762 1 0 0
|
|
763 1 0 0
|
|
764 1 0 0
|
|
765 1 0 0
|
|
766 1 0 0
|
|
767 1 0 0
|
|
768 1 0 0
|
|
769 1 0 0
|
|
770 1 0 0
|
|
771 1 0 0
|
|
772 1 0 0
|
|
773 1 0 0
|
|
774 1 0 0
|
|
775 1 0 0
|
|
776 1 0 0
|
|
777 1 0 0
|
|
778 1 0 0
|
|
779 1 0 0
|
|
780 1 0 0
|
|
781 1 0 0
|
|
782 1 0 0
|
|
783 1 0 0
|
|
784 1 0 0
|
|
785 1 0 0
|
|
786 1 0 0
|
|
787 1 0 0
|
|
788 1 0 0
|
|
789 1 0 0
|
|
790 1 0 0
|
|
791 1 0 0
|
|
792 1 0 0
|
|
793 1 0 0
|
|
794 1 0 0
|
|
795 1 0 0
|
|
796 1 0 0
|
|
797 1 0 0
|
|
798 1 0 0
|
|
799 1 0 0
|
|
800 1 0 0
|
|
801 1 0 0
|
|
802 1 0 0
|
|
803 1 0 0
|
|
804 1 0 0
|
|
805 1 0 0
|
|
806 1 0 0
|
|
807 1 0 0
|
|
808 1 0 0
|
|
809 1 0 0
|
|
810 1 0 0
|
|
811 1 0 0
|
|
812 1 0 0
|
|
813 1 0 0
|
|
814 1 0 0
|
|
815 1 0 0
|
|
816 1 0 0
|
|
817 1 0 0
|
|
818 1 0 0
|
|
819 1 0 0
|
|
820 1 0 0
|
|
821 1 0 0
|
|
822 1 0 0
|
|
823 1 0 0
|
|
824 1 0 0
|
|
825 1 0 0
|
|
826 1 0 0
|
|
827 1 0 0
|
|
828 1 0 0
|
|
829 1 0 0
|
|
830 1 0 0
|
|
831 1 0 0
|
|
832 1 0 0
|
|
833 1 0 0
|
|
834 1 0 0
|
|
835 1 0 0
|
|
836 1 0 0
|
|
837 1 0 0
|
|
838 1 0 0
|
|
839 1 0 0
|
|
840 1 0 0
|
|
841 1 0 0
|
|
842 1 0 1
|
|
843 1 0 1
|
|
844 1 0 1
|
|
845 1 0 1
|
|
846 1 0 1
|
|
847 1 0 1
|
|
848 1 0 1
|
|
849 1 0 1
|
|
850 1 0 1
|
|
851 1 0 1
|
|
852 1 0 1
|
|
853 1 0 1
|
|
854 1 0 1
|
|
855 1 0 1
|
|
856 1 0 1
|
|
857 1 0 1
|
|
858 1 0 1
|
|
859 1 0 1
|
|
860 1 0 1
|
|
861 1 0 1
|
|
862 1 0 1
|
|
863 1 0 1
|
|
864 1 0 1
|
|
865 1 0 1
|
|
866 1 0 1
|
|
867 1 0 1
|
|
868 1 0 1
|
|
869 1 0 1
|
|
870 1 0 1
|
|
871 1 0 1
|
|
872 1 0 1
|
|
873 1 0 1
|
|
874 1 0 1
|
|
875 1 0 1
|
|
876 1 0 1
|
|
877 1 0 1
|
|
878 1 0 1
|
|
879 1 0 1
|
|
880 1 0 1
|
|
881 1 0 1
|
|
882 1 0 1
|
|
883 1 0 1
|
|
884 1 0 1
|
|
885 1 0 1
|
|
886 1 0 1
|
|
887 1 0 1
|
|
888 1 0 1
|
|
889 1 0 1
|
|
890 1 0 1
|
|
891 1 0 1
|
|
892 1 0 1
|
|
893 1 0 1
|
|
894 1 0 1
|
|
895 1 0 1
|
|
896 1 0 1
|
|
897 1 0 1
|
|
898 1 0 1
|
|
899 1 0 1
|
|
900 1 0 1
|
|
901 1 0 1
|
|
902 1 0 1
|
|
903 1 0 1
|
|
904 1 0 1
|
|
905 1 0 1
|
|
906 1 0 1
|
|
907 1 0 1
|
|
908 1 0 1
|
|
909 1 0 1
|
|
910 1 0 1
|
|
911 1 0 1
|
|
912 1 0 1
|
|
913 1 0 1
|
|
914 1 0 1
|
|
915 1 0 1
|
|
916 1 0 1
|
|
917 1 0 1
|
|
918 1 0 1
|
|
919 1 0 1
|
|
920 1 0 1
|
|
921 1 0 1
|
|
922 1 0 1
|
|
923 1 0 1
|
|
924 1 0 1
|
|
925 1 0 1
|
|
926 1 0 1
|
|
927 1 0 1
|
|
928 1 0 1
|
|
929 1 0 1
|
|
930 1 0 1
|
|
931 1 0 1
|
|
932 1 0 1
|
|
933 1 0 1
|
|
934 1 0 1
|
|
935 1 0 1
|
|
936 1 0 1
|
|
937 1 0 1
|
|
938 1 0 1
|
|
939 1 0 1
|
|
940 1 0 1
|
|
941 1 0 1
|
|
942 1 0 1
|
|
943 1 0 1
|
|
944 1 0 1
|
|
945 1 0 1
|
|
946 1 0 1
|
|
947 1 0 1
|
|
948 1 0 1
|
|
949 1 0 1
|
|
950 1 0 1
|
|
951 1 0 1
|
|
952 1 0 1
|
|
953 1 0 1
|
|
954 1 0 1
|
|
955 1 0 1
|
|
956 1 0 1
|
|
957 1 0 1
|
|
958 1 0 1
|
|
959 1 0 1
|
|
960 1 0 1
|
|
961 1 0 1
|
|
962 1 0 1
|
|
963 1 0 1
|
|
964 1 0 1
|
|
965 1 0 1
|
|
966 1 0 1
|
|
967 1 0 1
|
|
968 1 0 1
|
|
969 1 0 1
|
|
970 1 0 1
|
|
971 1 0 1
|
|
972 1 0 1
|
|
973 1 0 1
|
|
974 1 0 1
|
|
975 1 0 1
|
|
976 1 0 1
|
|
977 1 0 1
|
|
978 1 0 1
|
|
979 1 0 1
|
|
980 1 0 1
|
|
981 1 0 1
|
|
982 1 0 1
|
|
983 1 0 1
|
|
984 1 0 1
|
|
985 1 0 1
|
|
986 1 0 1
|
|
987 1 0 1
|
|
988 1 0 1
|
|
989 1 0 1
|
|
990 1 0 1
|
|
991 1 0 1
|
|
992 1 0 1
|
|
993 1 0 1
|
|
994 1 0 1
|
|
995 1 0 1
|
|
996 1 0 1
|
|
997 1 0 1
|
|
998 1 0 1
|
|
999 1 0 1
|
|
1000 1 0 1
|
|
1001 1 0 1
|
|
1002 1 0 1
|
|
1003 1 0 1
|
|
1004 1 0 1
|
|
1005 1 0 1
|
|
1006 1 0 1
|
|
1007 1 0 1
|
|
1008 1 0 1
|
|
1009 1 0 1
|
|
1010 1 0 1
|
|
1011 1 0 1
|
|
1012 1 0 1
|
|
1013 1 0 1
|
|
1014 1 0 1
|
|
1015 1 0 1
|
|
1016 1 0 1
|
|
1017 1 0 1
|
|
1018 1 0 1
|
|
1019 1 0 1
|
|
1020 1 0 1
|
|
1021 1 0 1
|
|
1022 1 0 1
|
|
1023 1 0 1
|
|
1024 1 0 1
|
|
1025 1 0 1
|
|
1026 1 0 1
|
|
1027 1 0 1
|
|
1028 1 0 1
|
|
1029 1 0 1
|
|
1030 1 0 1
|
|
1031 1 0 1
|
|
1032 1 0 1
|
|
1033 1 0 1
|
|
1034 1 0 1
|
|
1035 1 0 1
|
|
1036 1 0 1
|
|
1037 1 0 1
|
|
1038 1 0 1
|
|
1039 1 0 1
|
|
1040 1 0 1
|
|
1041 1 0 1
|
|
1042 1 0 1
|
|
1043 1 0 1
|
|
1044 1 0 1
|
|
1045 1 0 1
|
|
1046 1 0 1
|
|
1047 1 0 1
|
|
1048 1 0 1
|
|
1049 1 0 1
|
|
1050 1 0 1
|
|
1051 1 0 1
|
|
1052 1 0 1
|
|
1053 1 0 1
|
|
1054 1 0 1
|
|
1055 1 0 1
|
|
1056 1 0 1
|
|
1057 1 0 1
|
|
1058 1 0 1
|
|
1059 1 0 1
|
|
1060 1 0 1
|
|
1061 1 0 1
|
|
1062 1 0 1
|
|
1063 1 0 1
|
|
1064 1 0 1
|
|
1065 1 0 1
|
|
1066 1 0 1
|
|
1067 1 0 1
|
|
1068 1 0 1
|
|
1069 1 0 1
|
|
1070 1 0 1
|
|
1071 1 0 1
|
|
1072 1 0 1
|
|
1073 1 0 1
|
|
1074 1 0 1
|
|
1075 1 0 1
|
|
1076 1 0 1
|
|
1077 1 0 1
|
|
1078 1 0 1
|
|
1079 1 0 1
|
|
1080 1 0 1
|
|
1081 1 0 1
|
|
1082 1 0 1
|
|
1083 1 0 1
|
|
1084 1 0 1
|
|
1085 1 0 1
|
|
1086 1 0 1
|
|
1087 1 0 1
|
|
1088 1 0 1
|
|
1089 1 0 1
|
|
1090 1 0 1
|
|
1091 1 0 1
|
|
1092 1 0 1
|
|
1093 1 0 1
|
|
1094 1 0 1
|
|
1095 1 0 1
|
|
1096 1 0 1
|
|
1097 1 0 1
|
|
1098 1 0 1
|
|
1099 1 0 1
|
|
1100 1 0 1
|
|
1101 1 0 1
|
|
1102 1 0 1
|
|
1103 1 0 1
|
|
1104 1 0 1
|
|
1105 1 0 1
|
|
1106 1 0 1
|
|
1107 1 0 1
|
|
1108 1 0 1
|
|
1109 1 0 1
|
|
1110 1 0 1
|
|
1111 1 0 1
|
|
1112 1 0 1
|
|
1113 1 0 1
|
|
1114 1 0 1
|
|
1115 1 0 1
|
|
1116 1 0 1
|
|
1117 1 0 1
|
|
1118 1 0 1
|
|
1119 1 0 1
|
|
1120 1 0 1
|
|
1121 1 0 1
|
|
1122 1 0 1
|
|
1123 1 0 1
|
|
1124 1 0 1
|
|
1125 1 0 1
|
|
1126 1 0 1
|
|
1127 1 0 1
|
|
1128 1 0 1
|
|
1129 1 0 1
|
|
1130 1 0 1
|
|
1131 1 0 1
|
|
1132 1 1 0
|
|
1133 1 1 0
|
|
1134 1 1 0
|
|
1135 1 1 0
|
|
1136 1 1 0
|
|
1137 1 1 0
|
|
1138 1 1 0
|
|
1139 1 1 0
|
|
1140 1 1 0
|
|
1141 1 1 0
|
|
1142 1 1 0
|
|
1143 1 1 0
|
|
1144 1 1 0
|
|
1145 1 1 0
|
|
1146 1 1 0
|
|
1147 1 1 1
|
|
1148 1 1 1
|
|
1149 1 1 1
|
|
1150 1 1 1
|
|
1151 1 1 1
|
|
1152 1 1 1
|
|
1153 1 1 1
|
|
1154 1 1 1
|
|
1155 1 1 1
|
|
1156 1 1 1
|
|
1157 */
|