diff --git a/.gitignore b/.gitignore index a662306..a6cc740 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ # ignore pycache -__pycache__/ \ No newline at end of file +__pycache__/ + +# ignore pdf files +*.pdf +data \ No newline at end of file diff --git a/dane.txt b/dane.txt index 3a50596..e06626f 100644 --- a/dane.txt +++ b/dane.txt @@ -1,1000 +1,200 @@ -6 15 31 5 0 0 1 0 1 -6 36 5 8 1 1 1 0 5 -13 40 29 3 0 0 0 0 1 -15 25 23 7 0 0 1 1 1 -17 35 5 5 1 1 0 1 4 -3 9 28 8 0 0 1 0 1 -18 38 43 6 1 1 1 1 2 -3 8 53 4 1 1 1 1 2 -9 40 47 1 1 0 1 1 1 -11 23 31 5 0 1 0 0 1 -20 5 41 5 0 0 1 1 1 -20 35 26 9 0 1 0 0 1 -19 36 50 9 0 0 1 1 1 -13 23 29 10 1 0 0 1 1 -4 37 40 5 1 1 1 1 2 -16 10 30 3 1 0 1 0 3 -2 19 29 2 1 0 0 0 3 -12 36 24 4 1 0 0 1 3 -20 33 14 7 0 1 0 1 1 -15 14 39 9 0 0 0 1 1 -2 13 26 3 1 1 0 1 4 -4 28 45 8 1 1 0 0 4 -3 33 42 8 1 0 0 0 3 -7 24 1 8 0 1 1 1 1 -7 11 45 3 0 0 1 0 1 -10 29 37 8 0 1 1 0 1 -8 24 60 8 1 1 0 1 1 -16 6 27 3 0 1 0 0 1 -9 32 28 9 0 0 1 1 1 -16 24 2 3 1 0 1 0 3 -16 37 29 5 1 0 0 1 3 -17 10 46 5 1 0 1 1 3 -8 30 58 9 0 0 0 0 1 -9 14 13 4 1 1 1 0 5 -17 26 37 9 1 0 0 1 3 -19 36 18 10 0 1 0 0 1 -16 38 56 5 1 0 1 0 3 -9 19 55 9 1 1 1 0 5 -10 23 32 8 1 0 1 0 3 -6 18 56 8 1 0 0 0 3 -18 26 47 10 1 0 1 1 1 -17 27 20 1 1 1 0 0 4 -14 20 57 3 1 1 0 1 4 -15 20 6 0 0 1 0 0 1 -4 33 22 9 0 0 1 0 1 -20 27 54 0 0 1 1 1 1 -0 6 54 10 0 1 1 1 1 -8 34 3 3 1 1 1 0 5 -5 6 35 2 1 1 0 1 4 -12 22 5 5 1 0 0 1 3 -20 25 53 0 0 1 0 1 1 -2 34 19 7 0 1 1 0 1 -6 25 8 8 1 0 0 0 3 -17 7 59 1 0 1 1 1 1 -18 14 7 6 0 0 1 1 1 -5 20 34 4 0 0 1 0 1 -10 33 3 8 1 0 0 0 3 -10 14 10 1 1 1 0 1 4 -10 36 17 5 0 0 1 1 1 -15 22 44 5 0 0 1 0 1 -7 35 20 10 0 1 0 0 1 -2 24 57 0 0 1 1 0 1 -7 7 13 8 0 0 1 0 1 -12 6 53 4 0 1 0 1 1 -11 14 32 4 1 1 0 1 4 -14 38 4 1 0 1 1 1 1 -5 10 33 4 0 1 0 0 1 -10 33 49 5 1 1 0 0 4 -18 17 47 4 0 1 1 1 1 -3 21 13 6 0 0 0 1 1 -14 18 52 3 1 1 1 1 2 -5 33 53 4 0 0 0 0 1 -19 7 43 4 1 0 0 1 3 -5 24 36 6 1 0 1 1 3 -17 30 51 5 0 1 0 0 1 -6 14 52 4 0 1 0 1 1 -13 23 22 4 0 0 0 0 1 -6 11 56 10 0 1 1 1 1 -19 28 60 9 1 0 1 1 1 -15 31 38 3 1 1 0 0 4 -1 17 28 9 0 0 1 0 1 -7 15 40 6 0 0 1 0 1 -2 23 6 2 0 1 1 1 1 -13 13 13 3 0 1 0 0 1 -19 34 52 7 0 0 0 1 1 -18 38 8 5 0 1 0 1 1 -16 21 47 8 1 1 1 0 5 -18 28 8 4 1 1 0 0 4 -20 13 43 8 0 0 1 1 1 -10 37 28 7 0 0 0 1 1 -10 33 47 3 0 1 0 0 1 -2 34 8 7 0 0 0 1 1 -17 15 12 10 0 1 0 1 1 -11 11 21 6 0 1 0 0 1 -16 36 17 2 1 0 0 1 3 -6 21 9 1 0 1 0 0 1 -8 22 40 10 1 0 0 1 1 -17 14 21 8 1 1 0 1 4 -11 13 56 5 0 1 1 0 1 -19 32 37 0 1 1 0 1 4 -17 34 31 7 1 0 0 1 3 -12 40 32 4 1 0 1 0 1 -14 22 58 5 1 1 0 0 4 -5 20 15 6 1 1 1 0 5 -16 38 52 4 1 1 0 1 4 -8 29 60 9 0 1 1 1 1 -19 32 37 7 0 1 0 0 1 -18 18 13 0 0 1 1 0 1 -1 14 8 1 1 1 1 0 5 -6 18 49 9 1 0 0 0 3 -2 31 21 10 0 1 0 1 1 -8 31 4 10 1 1 0 0 1 -17 7 19 8 1 0 1 1 3 -1 25 30 0 1 0 0 1 3 -2 25 33 3 1 0 1 0 3 -1 5 3 6 0 0 1 0 1 -10 9 25 3 0 1 0 1 1 -15 30 49 2 1 1 1 1 2 -15 31 36 4 1 0 0 0 3 -8 35 24 2 0 0 1 0 1 -12 24 56 4 1 1 1 1 2 -11 14 32 5 0 1 1 1 1 -9 35 41 6 0 0 1 1 1 -19 40 59 3 1 1 1 1 1 -4 35 30 2 1 1 0 0 4 -9 24 4 0 1 0 0 1 3 -19 6 19 2 1 1 0 0 4 -6 16 38 5 0 1 0 1 1 -19 9 28 9 0 0 0 1 1 -18 11 57 8 1 1 1 1 2 -13 9 5 2 1 1 1 0 5 -2 13 41 7 0 1 0 1 1 -6 22 59 10 0 1 1 1 1 -4 17 42 9 0 0 1 1 1 -11 20 16 6 0 1 1 0 1 -10 27 29 4 1 0 0 1 3 -20 16 23 7 0 0 0 0 1 -3 34 39 2 0 1 0 1 1 -12 19 49 9 1 1 0 1 4 -0 38 17 2 0 1 0 1 1 -10 7 30 5 1 1 0 1 4 -17 19 40 4 0 1 0 0 1 -17 5 60 6 0 0 1 0 1 -19 8 44 6 1 0 0 0 3 -4 40 21 2 1 0 1 1 1 -6 36 47 6 1 0 1 1 3 -1 26 19 10 0 1 1 0 1 -14 32 17 6 1 0 0 1 3 -17 38 29 6 1 0 1 0 3 -7 35 2 0 1 0 1 0 3 -9 38 39 3 1 0 1 1 3 -19 7 15 3 0 0 1 1 1 -4 34 22 2 1 1 0 1 4 -3 27 5 10 1 1 1 1 1 -3 19 30 3 0 1 1 0 1 -3 29 21 3 0 0 0 0 1 -11 13 54 5 0 1 1 1 1 -18 32 53 2 0 1 1 1 1 -9 21 20 3 1 1 0 0 4 -5 33 40 3 1 1 1 0 5 -10 37 13 8 1 1 0 0 4 -14 21 20 0 0 1 0 0 1 -1 12 44 9 1 1 0 1 4 -13 35 60 8 1 1 0 0 1 -7 39 36 10 1 0 0 1 1 -15 36 42 10 1 0 0 1 1 -15 20 17 0 1 1 1 1 2 -3 6 52 9 1 0 1 0 3 -16 29 40 1 1 1 0 1 4 -11 39 2 1 0 0 0 1 1 -0 25 51 6 1 0 0 0 3 -14 30 42 1 0 0 0 1 1 -20 21 55 9 0 0 1 1 1 -4 35 35 7 0 0 0 0 1 -6 12 35 6 0 0 1 1 1 -7 13 59 7 1 0 1 0 1 -20 39 16 7 0 1 1 0 1 -6 38 52 2 1 0 1 0 3 -4 29 19 7 0 0 0 1 1 -18 31 36 6 0 1 0 1 1 -12 27 12 7 0 0 0 0 1 -20 5 29 10 0 0 1 1 1 -4 25 55 5 1 1 1 1 2 -1 39 57 5 1 0 1 1 3 -16 35 38 0 1 1 1 0 5 -2 24 21 1 1 0 1 0 3 -14 34 50 0 0 1 0 0 1 -8 14 17 0 1 0 1 1 3 -2 23 45 10 1 1 0 0 1 -4 12 12 3 1 1 0 1 4 -19 16 44 3 1 1 0 1 4 -0 26 17 6 1 0 0 0 3 -19 21 55 6 1 0 1 1 3 -18 6 36 9 0 1 0 0 1 -8 36 53 5 1 0 1 0 3 -7 20 12 4 0 0 1 1 1 -16 8 11 10 0 0 0 1 1 -12 34 36 2 0 1 0 1 1 -15 13 29 3 1 0 1 1 3 -13 20 37 8 1 1 0 0 4 -3 34 2 9 1 0 0 1 3 -12 16 51 1 1 0 0 0 3 -11 24 45 4 1 1 1 0 5 -17 38 39 3 0 1 1 0 1 -4 36 8 8 0 0 1 0 1 -11 6 57 4 0 1 0 0 1 -2 18 49 5 0 0 0 0 1 -6 9 16 8 0 1 1 1 1 -7 11 36 8 0 1 1 0 1 -6 8 60 1 0 0 1 1 1 -20 21 42 6 1 0 1 0 1 -5 32 9 2 0 0 0 0 1 -9 12 31 10 0 0 0 1 1 -14 6 8 5 0 0 0 1 1 -13 37 11 4 1 0 1 0 3 -1 5 2 6 0 0 0 0 1 -15 32 21 4 0 0 1 1 1 -1 40 33 4 1 1 1 1 1 -3 14 29 0 1 0 1 1 3 -13 10 54 2 1 0 1 0 3 -7 11 6 2 1 0 1 0 3 -13 16 29 4 1 0 1 1 3 -17 34 44 6 1 0 0 1 3 -0 32 54 1 1 0 1 0 3 -1 8 25 8 1 0 1 0 3 -8 27 41 9 1 1 1 0 5 -3 16 60 2 1 0 1 1 1 -0 21 10 7 0 1 1 0 1 -2 35 12 0 1 0 0 1 3 -9 32 54 2 1 0 0 1 3 -9 27 18 9 1 1 0 1 4 -3 8 56 2 1 0 0 0 3 -20 28 17 8 0 0 0 1 1 -9 32 50 0 1 1 0 0 4 -1 7 23 4 0 1 0 0 1 -9 11 54 3 0 0 1 0 1 -15 18 10 7 0 1 1 0 1 -6 14 17 2 0 1 0 1 1 -5 13 42 10 0 0 1 0 1 -7 33 13 7 0 1 0 0 1 -13 39 20 9 0 0 0 0 1 -2 11 56 3 1 0 1 1 3 -4 40 48 5 0 0 0 0 1 -10 35 44 0 1 1 0 1 4 -10 36 52 4 1 0 1 1 3 -17 25 8 9 1 1 0 0 4 -9 33 8 9 0 0 0 0 1 -19 18 32 7 1 0 1 1 3 -2 32 27 6 0 0 0 1 1 -14 33 36 1 1 0 0 1 3 -1 5 1 3 0 1 1 1 1 -1 36 38 9 0 0 1 0 1 -5 36 35 8 1 0 0 1 3 -15 14 39 2 1 1 1 1 2 -2 35 6 10 0 0 0 0 1 -16 40 8 4 1 0 1 0 1 -6 30 51 8 1 0 0 1 3 -1 5 11 9 0 1 1 1 1 -9 28 24 0 0 1 0 0 1 -5 7 52 8 1 1 0 1 4 -18 34 15 2 0 1 0 0 1 -3 35 4 7 0 0 0 0 1 -13 18 47 9 0 1 0 0 1 -10 26 24 1 0 0 0 0 1 -10 27 49 7 0 1 1 1 1 -11 27 1 5 0 0 1 1 1 -4 10 18 3 1 0 1 1 3 -9 15 35 3 1 1 1 1 2 -15 33 50 4 1 1 1 0 5 -15 17 43 4 1 0 1 1 3 -8 5 41 9 1 1 1 0 5 -20 34 9 2 1 1 0 1 1 -19 20 8 9 1 0 1 0 3 -17 9 14 8 0 1 1 1 1 -10 6 58 7 0 1 1 0 1 -2 25 28 10 0 1 0 0 1 -9 9 52 4 1 0 1 0 3 -6 32 45 9 1 1 1 1 2 -3 11 15 1 1 0 0 1 3 -8 33 47 2 0 0 1 0 1 -10 6 46 2 1 0 0 0 3 -16 14 45 4 1 1 1 1 2 -9 29 60 4 1 1 0 0 1 -19 23 59 0 0 1 0 0 1 -17 9 34 5 0 0 1 1 1 -5 34 60 5 1 1 0 0 1 -8 26 58 5 0 0 0 0 1 -1 40 50 4 0 0 1 0 1 -17 38 13 7 0 0 0 0 1 -3 32 8 5 1 0 1 0 3 -1 23 41 4 0 0 1 1 1 -17 38 60 7 0 0 0 1 1 -6 27 14 1 0 1 0 0 1 -5 27 27 7 1 0 1 1 3 -1 34 25 9 0 1 0 1 1 -5 11 8 6 1 1 1 0 5 -1 10 39 9 1 0 1 1 3 -3 32 5 2 0 1 1 0 1 -16 32 7 6 0 1 0 1 1 -13 25 10 7 0 1 0 0 1 -17 27 9 1 0 1 0 0 1 -6 5 17 10 1 0 1 0 1 -12 20 19 0 1 0 1 0 3 -12 8 33 1 0 1 0 0 1 -7 37 53 9 0 1 0 1 1 -5 19 3 2 1 0 1 1 3 -19 37 20 5 0 1 1 1 1 -15 24 27 7 1 0 0 1 3 -9 21 48 0 0 1 0 0 1 -19 29 9 4 0 0 0 0 1 -19 33 19 2 1 1 1 0 5 -2 15 3 6 1 0 1 0 3 -8 26 29 7 0 1 0 0 1 -15 39 13 1 0 0 0 0 1 -10 26 54 8 1 1 0 1 4 -12 26 43 2 1 0 1 1 3 -16 26 14 5 0 1 0 0 1 -15 23 8 8 1 0 0 1 3 -8 35 51 5 1 1 0 0 4 -1 32 30 10 0 0 1 1 1 -1 17 55 6 1 1 0 1 4 -8 17 1 10 0 0 1 1 1 -5 15 51 6 0 0 0 0 1 -4 13 26 9 0 1 1 0 1 -18 8 55 7 0 0 1 1 1 -14 25 49 5 1 0 1 0 3 -13 38 20 3 1 0 0 0 3 -8 31 30 5 1 0 1 1 3 -11 30 37 5 1 0 1 1 3 -0 20 57 0 1 1 1 1 2 -13 16 21 5 0 1 1 1 1 -8 8 5 4 0 1 1 0 1 -19 20 33 4 0 0 1 1 1 -13 21 31 6 1 0 0 1 3 -7 32 7 4 1 0 0 0 3 -14 11 9 0 1 0 0 0 3 -12 20 4 6 0 1 0 1 1 -6 14 48 10 0 0 1 1 1 -16 8 46 1 0 1 0 0 1 -19 25 49 0 1 1 0 0 4 -2 29 52 3 0 0 0 1 1 -2 39 35 5 1 0 1 1 3 -19 16 57 6 0 0 1 1 1 -1 40 32 7 1 0 1 0 1 -15 39 47 10 0 0 1 0 1 -8 17 26 8 0 0 0 1 1 -2 6 47 10 0 0 0 0 1 -15 19 28 5 0 0 0 0 1 -16 34 36 1 0 1 0 0 1 -19 27 8 0 0 0 1 0 1 -20 22 16 6 1 1 1 1 1 -0 19 32 10 1 0 1 0 1 -11 15 34 3 1 1 1 1 2 -18 27 7 1 1 0 0 0 3 -10 5 22 3 0 1 1 0 1 -0 37 39 10 1 1 1 1 1 -5 23 39 2 0 1 1 0 1 -10 10 1 1 1 0 1 0 3 -18 6 5 7 1 1 1 1 2 -2 25 23 10 0 0 1 1 1 -7 11 51 4 1 0 1 0 3 -4 11 54 2 0 0 0 1 1 -3 27 53 2 0 1 1 0 1 -3 35 32 6 1 0 0 1 3 -15 9 6 7 1 1 0 1 4 -7 39 43 7 1 1 0 0 4 -11 26 26 10 0 1 0 1 1 -7 29 22 7 0 0 1 1 1 -10 6 4 4 0 0 0 1 1 -4 31 19 7 1 1 1 1 2 -6 27 40 7 0 0 0 1 1 -17 12 57 7 0 0 0 1 1 -6 32 20 4 1 0 1 1 3 -19 33 22 10 0 0 1 1 1 -9 25 22 4 0 0 1 0 1 -1 31 20 1 0 1 0 1 1 -18 19 6 6 0 1 1 1 1 -13 34 16 2 1 1 0 1 4 -3 35 23 4 1 1 1 1 2 -9 37 41 6 1 0 1 1 3 -11 10 10 5 0 1 0 0 1 -10 22 39 7 0 1 0 0 1 -7 6 32 7 1 0 1 0 3 -14 31 16 6 0 1 0 0 1 -14 7 59 5 0 0 0 0 1 -3 39 7 9 0 1 0 0 1 -20 32 19 3 0 1 0 1 1 -17 12 11 6 1 1 0 0 4 -20 27 1 3 1 0 0 0 1 -14 33 36 10 1 0 0 0 1 -2 28 10 8 1 1 1 1 2 -14 16 22 5 1 0 1 0 3 -11 19 27 4 0 1 1 0 1 -7 37 31 0 1 0 0 1 3 -19 24 5 6 0 0 1 1 1 -14 25 46 4 1 1 1 0 5 -13 12 12 2 1 0 0 0 3 -2 20 16 9 1 1 0 0 4 -13 16 52 0 0 0 1 0 1 -10 30 56 8 0 1 1 0 1 -4 31 24 1 0 0 0 1 1 -14 14 10 2 0 0 0 1 1 -0 5 37 8 0 1 0 1 1 -3 6 3 1 1 1 0 0 4 -6 13 42 3 0 1 1 0 1 -8 13 42 5 0 0 0 0 1 -18 39 5 9 0 0 1 0 1 -5 36 57 1 0 0 1 1 1 -4 18 41 9 0 1 0 1 1 -7 19 38 0 1 0 0 0 3 -2 26 50 5 0 0 1 1 1 -13 20 30 1 1 1 1 0 5 -6 8 27 8 1 0 1 0 3 -16 29 55 4 0 0 0 0 1 -6 22 54 8 1 0 1 1 3 -5 18 48 10 0 0 0 1 1 -17 23 12 9 0 1 1 1 1 -0 12 52 10 0 1 1 1 1 -3 5 29 8 0 1 0 1 1 -7 6 42 2 1 1 0 1 4 -5 40 49 5 1 1 0 1 1 -9 15 54 8 0 1 1 1 1 -6 11 2 8 0 1 1 1 1 -14 15 49 6 1 0 0 1 3 -17 14 57 10 1 1 1 1 1 -1 20 48 6 0 0 0 0 1 -7 30 60 2 0 1 0 0 1 -0 22 55 0 0 0 1 1 1 -6 15 36 10 1 1 0 1 1 -0 29 18 5 1 1 0 0 4 -16 36 57 9 0 1 1 1 1 -6 13 21 1 1 0 0 0 3 -14 8 59 3 0 1 0 1 1 -12 32 38 2 0 0 1 0 1 -1 6 30 1 0 1 1 0 1 -20 14 32 7 1 0 1 0 1 -12 22 40 2 1 1 0 0 4 -14 20 22 6 1 0 0 0 3 -17 37 18 6 0 1 0 0 1 -9 29 49 7 1 1 0 1 4 -18 9 13 2 1 1 1 1 2 -6 23 47 9 1 1 0 0 4 -0 28 35 8 1 1 0 1 4 -5 10 42 8 0 1 0 0 1 -18 9 8 5 0 1 1 0 1 -14 39 12 10 0 0 1 1 1 -6 32 54 4 1 0 0 1 3 -18 33 55 3 1 0 1 1 3 -18 34 20 9 0 1 0 1 1 -0 16 39 7 1 0 0 1 3 -7 29 2 0 1 0 1 1 3 -6 29 58 2 0 1 1 0 1 -17 31 23 4 1 1 1 0 5 -4 12 21 3 1 1 1 0 5 -6 33 20 7 0 0 0 0 1 -2 12 50 9 1 1 0 0 4 -14 37 54 4 0 0 1 1 1 -8 34 51 5 1 1 1 1 2 -6 23 15 0 1 0 1 1 3 -11 7 8 2 1 1 0 0 4 -8 10 30 9 0 1 1 1 1 -2 21 38 4 1 1 0 0 4 -12 34 7 5 1 0 1 1 3 -15 10 8 4 1 1 1 1 2 -15 12 7 8 0 1 0 0 1 -11 6 21 3 0 0 1 1 1 -2 35 28 9 0 1 1 0 1 -3 21 41 7 0 0 0 1 1 -15 37 22 4 1 1 0 0 4 -2 35 46 0 0 1 0 0 1 -2 24 25 7 1 1 0 1 4 -12 16 56 1 1 1 0 1 4 -14 33 25 7 0 0 1 1 1 -16 9 15 6 0 1 1 0 1 -14 39 3 8 0 1 1 0 1 -17 40 40 2 1 0 1 1 1 -19 9 44 4 1 0 1 1 3 -6 23 53 3 0 1 0 1 1 -15 15 30 1 1 0 1 1 3 -2 15 56 2 0 1 0 1 1 -9 9 40 9 1 0 1 0 3 -4 14 18 4 1 1 0 0 4 -5 18 41 1 0 1 1 0 1 -4 22 44 5 1 1 0 0 4 -16 8 1 7 1 1 0 0 4 -12 38 33 3 0 1 0 0 1 -0 13 29 2 0 0 0 1 1 -12 34 53 9 1 1 0 1 4 -15 33 58 10 1 1 0 1 1 -13 15 33 6 0 0 0 1 1 -7 28 43 4 0 1 0 1 1 -7 10 35 1 0 0 0 1 1 -1 20 14 10 1 0 1 1 1 -19 38 10 1 0 0 1 0 1 -15 12 44 6 0 1 1 0 1 -6 23 17 5 0 0 0 0 1 -20 7 36 1 0 1 0 0 1 -4 19 41 4 0 0 1 1 1 -14 30 7 4 0 1 1 0 1 -19 19 11 0 1 1 1 0 5 -10 36 5 6 0 1 0 0 1 -14 27 55 3 0 1 0 0 1 -18 14 23 8 1 1 1 1 2 -10 5 47 9 1 0 0 1 3 -5 34 49 5 1 0 1 0 3 -10 10 34 6 1 1 0 0 4 -0 13 49 10 0 0 1 1 1 -16 11 27 6 1 1 1 0 5 -3 38 23 6 1 1 0 1 4 -12 36 13 5 1 0 0 0 3 -13 10 25 0 1 1 0 0 4 -8 15 50 5 0 1 0 0 1 -7 16 55 2 0 0 1 1 1 -3 37 32 5 1 0 0 0 3 -6 25 24 2 0 1 1 1 1 -9 16 30 1 1 0 0 1 3 -10 17 34 10 1 1 1 1 1 -17 29 12 3 0 0 0 0 1 -14 8 55 0 0 0 1 1 1 -10 19 15 2 1 0 1 0 3 -9 30 4 8 1 0 1 0 3 -14 7 31 5 0 0 1 0 1 -5 22 50 9 1 1 0 1 4 -6 15 52 3 0 0 0 0 1 -12 17 12 9 1 0 0 1 3 -5 36 56 1 0 1 1 0 1 -11 7 13 1 0 0 0 1 1 -11 8 46 1 0 0 1 1 1 -19 14 9 10 0 1 1 1 1 -17 31 27 4 1 0 0 1 3 -8 34 33 5 0 0 0 1 1 -2 10 6 4 1 0 1 1 3 -12 30 5 4 1 1 0 0 4 -17 38 7 6 0 0 0 1 1 -2 38 38 10 0 1 0 1 1 -4 12 23 5 1 0 1 0 3 -1 10 26 6 1 0 1 0 3 -13 20 13 8 0 0 1 0 1 -5 17 50 4 0 0 1 1 1 -2 28 10 0 1 1 0 1 4 -0 16 58 3 1 0 1 0 3 -18 10 16 3 1 1 1 0 5 -18 18 13 8 1 1 1 1 2 -14 9 9 2 1 1 0 0 4 -0 40 10 7 1 1 0 1 1 -3 8 52 2 1 1 0 0 4 -1 11 15 3 0 0 1 0 1 -11 22 32 8 0 1 0 1 1 -13 11 30 4 0 0 1 1 1 -19 34 39 0 1 1 0 0 4 -13 16 28 3 1 1 0 0 4 -15 13 45 3 0 1 1 1 1 -18 11 14 8 1 1 1 1 2 -0 28 21 4 1 0 0 1 3 -2 7 40 8 1 0 0 1 3 -4 7 47 8 1 0 0 0 3 -1 13 60 4 1 0 1 1 1 -11 12 6 10 0 0 0 1 1 -4 32 28 1 1 0 0 1 3 -9 15 10 6 1 1 0 0 4 -19 8 47 5 0 0 0 1 1 -6 37 59 6 1 1 1 0 1 -4 9 57 7 1 1 1 1 2 -17 36 24 3 1 1 1 1 2 -19 34 21 3 1 1 1 1 2 -15 26 57 5 1 0 1 0 3 -18 22 11 8 0 0 0 1 1 -1 11 52 2 0 1 1 0 1 -1 19 35 2 1 1 0 0 4 -12 25 53 2 0 0 1 0 1 -4 13 28 2 0 0 1 1 1 -6 6 30 6 0 1 0 0 1 -19 28 15 8 1 0 0 0 3 -2 8 36 8 0 0 1 1 1 -20 12 19 1 1 0 0 1 1 -13 12 57 7 0 1 1 1 1 -14 30 31 5 0 1 0 1 1 -0 40 35 7 0 1 0 1 1 -4 31 33 6 0 0 0 0 1 -12 30 18 0 0 1 0 0 1 -18 18 43 3 1 0 0 1 3 -8 9 8 3 1 0 1 1 3 -5 23 53 1 0 0 1 0 1 -10 17 36 10 0 0 0 1 1 -11 30 42 1 1 0 1 1 3 -18 40 39 4 0 0 0 0 1 -7 34 4 10 1 1 1 0 1 -6 10 8 7 0 1 0 1 1 -7 25 46 9 1 1 0 1 4 -12 26 23 8 1 0 0 1 3 -0 28 31 4 0 1 0 1 1 -5 25 36 8 0 0 0 0 1 -9 26 20 4 1 1 0 0 4 -19 12 33 9 0 0 1 0 1 -0 38 32 7 0 0 0 1 1 -4 37 2 9 1 1 1 0 5 -1 20 38 2 0 1 1 1 1 -8 14 40 9 0 0 1 0 1 -19 14 59 10 1 0 1 0 1 -13 32 47 2 1 0 1 1 3 -0 9 27 3 0 0 0 0 1 -8 22 34 10 1 1 0 0 1 -6 11 4 4 0 0 0 1 1 -15 21 49 2 0 1 0 0 1 -7 16 31 9 0 1 0 1 1 -3 31 4 1 0 1 0 1 1 -16 33 30 8 0 1 0 1 1 -16 34 17 10 1 1 0 1 1 -0 16 24 5 0 1 0 0 1 -10 10 58 8 1 1 0 0 4 -4 35 59 2 1 1 0 0 1 -16 11 23 9 0 0 0 0 1 -7 27 54 8 1 1 1 1 2 -11 6 60 1 1 0 1 1 1 -13 14 46 9 0 1 0 1 1 -18 16 51 8 1 1 0 1 4 -9 30 4 0 1 1 1 1 2 -4 17 51 3 1 1 0 0 4 -17 5 15 1 1 0 0 0 3 -9 20 19 6 1 1 1 1 2 -9 14 59 2 1 0 0 1 1 -4 9 21 10 0 1 1 1 1 -2 35 1 5 0 0 1 1 1 -15 9 17 8 1 1 1 0 5 -13 10 12 7 0 1 0 0 1 -11 29 23 9 0 0 0 1 1 -16 21 36 9 0 0 0 1 1 -0 11 13 0 1 1 0 0 4 -14 9 45 10 1 0 0 0 1 -14 22 43 4 0 1 0 1 1 -19 15 43 4 1 0 0 1 3 -8 30 47 7 0 1 0 0 1 -19 22 12 3 1 1 0 0 4 -15 19 30 10 1 0 1 0 1 -3 14 30 0 0 0 1 0 1 -0 14 2 10 1 1 1 1 1 -19 35 31 9 1 0 1 1 3 -2 12 50 10 1 1 0 0 1 -10 26 51 3 0 1 0 1 1 -0 30 19 1 1 0 0 1 3 -0 22 14 0 0 0 0 0 1 -2 31 59 3 0 0 1 0 1 -14 22 22 8 1 0 1 0 3 -0 21 45 6 0 1 1 0 1 -0 38 2 7 1 1 0 0 4 -4 12 49 1 1 0 0 1 3 -18 26 12 9 0 1 0 0 1 -9 39 38 3 1 1 1 0 5 -5 25 1 10 0 0 0 0 1 -9 38 33 5 0 0 1 0 1 -9 30 6 9 0 0 1 0 1 -18 8 21 3 1 1 0 1 4 -19 16 2 10 1 0 1 0 1 -6 18 34 0 1 0 0 0 3 -7 29 4 9 1 1 1 0 5 -3 35 23 4 1 1 0 1 4 -8 33 23 3 1 0 1 0 3 -9 40 25 6 0 1 1 1 1 -11 20 46 0 0 1 1 1 1 -18 17 57 10 1 1 1 1 1 -10 15 13 9 0 1 1 0 1 -19 26 43 6 0 0 1 1 1 -2 37 30 3 0 1 0 1 1 -13 29 49 3 0 1 0 0 1 -11 31 38 10 1 0 0 0 1 -2 14 39 3 0 0 1 0 1 -1 39 59 3 1 0 1 1 1 -17 17 40 9 0 1 1 0 1 -0 5 13 7 0 0 0 1 1 -11 14 28 8 1 0 1 1 3 -12 7 16 9 0 0 0 0 1 -7 8 38 1 1 1 1 1 2 -7 19 32 4 0 1 0 0 1 -1 24 29 8 0 0 0 0 1 -5 37 27 8 1 0 0 1 3 -12 5 14 6 1 0 0 0 3 -4 16 49 4 0 0 0 1 1 -14 13 1 6 0 0 1 0 1 -11 37 18 6 0 1 0 0 1 -5 10 18 8 0 0 0 0 1 -11 5 6 9 1 0 1 1 3 -17 27 43 10 1 0 1 0 1 -7 33 52 8 1 0 1 0 3 -20 28 9 1 1 1 1 1 1 -4 37 33 8 0 1 1 1 1 -12 20 26 1 0 0 0 1 1 -4 14 36 5 0 0 0 1 1 -8 13 20 6 0 0 1 1 1 -3 12 33 7 1 0 0 0 3 -20 9 5 2 1 1 1 0 1 -13 34 42 3 0 1 1 1 1 -18 11 53 9 0 1 1 1 1 -15 8 47 0 0 1 0 0 1 -13 13 28 4 1 1 0 1 4 -11 18 53 7 0 0 0 0 1 -9 8 1 1 0 0 0 1 1 -11 31 2 7 0 1 0 1 1 -18 12 5 2 0 0 0 0 1 -1 35 46 5 1 0 0 1 3 -13 40 3 8 0 1 1 1 1 -14 34 41 1 1 1 0 0 4 -13 30 23 6 1 0 0 0 3 -4 16 25 0 1 0 1 0 3 -2 10 46 3 0 0 0 1 1 -17 35 1 0 0 0 1 0 1 -17 33 10 9 0 1 0 1 1 -1 18 38 4 0 0 0 0 1 -4 25 12 5 0 1 1 0 1 -0 31 8 8 1 0 0 1 3 -13 23 9 5 0 0 0 0 1 -1 36 8 2 1 1 1 0 5 -4 7 33 9 0 0 0 1 1 -14 8 25 3 1 1 1 1 2 -20 29 9 5 0 0 1 1 1 -7 34 17 9 0 1 0 0 1 -15 12 18 1 0 1 1 1 1 -13 29 38 1 1 1 0 1 4 -17 6 23 5 0 0 0 1 1 -2 40 53 6 0 1 0 1 1 -13 14 31 10 0 1 1 1 1 -2 17 55 10 1 0 1 1 1 -10 37 26 3 0 1 0 1 1 -11 15 20 6 0 0 0 1 1 -5 10 5 4 1 1 1 1 2 -10 11 26 10 0 1 1 0 1 -10 19 3 8 0 1 1 1 1 -4 24 37 9 0 0 1 0 1 -14 28 10 9 0 1 0 0 1 -8 27 46 1 1 0 1 0 3 -4 11 20 9 0 1 0 1 1 -14 30 60 0 1 1 0 1 1 -7 35 2 0 1 1 1 0 5 -9 20 39 8 0 1 0 1 1 -11 23 54 9 1 1 0 1 4 -19 22 42 7 1 0 0 1 3 -1 14 18 5 0 0 1 0 1 -20 16 49 6 1 1 0 0 1 -16 14 20 10 1 1 0 0 1 -3 24 1 1 1 0 0 1 3 -3 13 22 4 1 0 0 0 3 -0 29 12 5 0 1 1 0 1 -11 23 25 0 1 1 1 1 2 -4 35 19 5 0 0 1 0 1 -20 5 40 4 0 0 0 0 1 -6 17 46 6 1 0 0 0 3 -2 24 26 9 0 0 1 1 1 -20 19 60 2 0 1 1 1 1 -10 6 33 1 1 0 0 1 3 -3 34 54 1 1 1 0 1 4 -16 9 15 8 1 0 0 0 3 -17 9 27 10 0 0 0 0 1 -16 32 56 3 1 0 0 0 3 -10 22 11 8 1 1 1 0 5 -3 34 15 4 1 1 1 1 2 -0 36 23 4 1 0 1 0 3 -1 29 48 2 1 0 1 1 3 -16 25 27 2 1 1 0 1 4 -3 32 31 1 1 1 0 0 4 -2 5 16 4 0 1 1 0 1 -7 38 45 3 1 0 1 1 3 -12 22 30 9 1 0 1 1 3 -7 12 44 6 1 0 0 1 3 -14 6 31 4 1 1 1 0 5 -6 30 54 3 1 0 1 1 3 -3 28 29 9 0 0 1 0 1 -6 36 11 6 0 1 1 1 1 -8 33 36 3 1 1 1 1 2 -17 21 29 1 0 0 0 1 1 -15 25 44 6 0 0 0 0 1 -15 5 9 3 1 0 1 0 3 -20 15 44 6 0 0 0 1 1 -12 10 5 8 1 0 1 1 3 -7 28 5 8 0 0 0 1 1 -7 24 35 0 0 0 1 0 1 -19 30 43 10 1 1 1 1 1 -4 16 27 5 1 1 1 0 5 -2 24 9 7 0 0 0 1 1 -20 19 8 0 0 1 1 0 1 -14 37 45 6 0 0 0 1 1 -4 6 5 10 1 1 0 1 1 -8 24 29 1 0 0 0 1 1 -12 19 40 2 1 0 0 0 3 -5 34 18 7 0 0 1 1 1 -5 36 31 6 1 1 1 1 2 -13 16 48 8 0 1 1 1 1 -16 22 9 5 1 0 0 0 3 -11 29 33 8 0 0 1 0 1 -0 32 55 9 0 0 1 0 1 -7 27 29 4 1 1 1 0 5 -20 16 19 0 0 0 1 1 1 -18 15 32 5 0 0 0 1 1 -16 14 15 5 0 0 1 1 1 -15 6 30 9 1 1 1 0 5 -3 23 50 5 0 1 1 1 1 -14 22 15 4 0 0 1 1 1 -3 21 10 3 1 0 0 0 3 -4 20 51 2 0 0 0 1 1 -2 16 36 9 1 1 0 1 4 -18 25 21 10 0 1 1 1 1 -11 30 9 2 1 1 0 1 4 -18 26 60 3 1 1 0 0 1 -14 10 6 4 0 1 1 0 1 -19 16 16 0 1 1 0 0 4 -17 24 12 2 0 0 1 0 1 -8 9 44 8 1 0 0 1 3 -3 24 38 10 1 0 1 1 1 -11 29 10 6 1 0 0 1 3 -19 15 8 7 1 1 0 0 4 -8 28 25 3 0 0 0 0 1 -20 8 47 1 0 1 0 1 1 -10 39 28 8 0 0 0 0 1 -4 15 44 3 1 0 0 0 3 -15 16 55 5 1 0 1 0 3 -8 27 35 5 1 0 1 1 3 -16 8 52 3 0 0 1 1 1 -6 20 7 1 0 1 0 0 1 -16 16 57 0 1 0 0 1 3 -13 18 5 9 1 1 0 0 4 -15 17 28 0 0 1 0 0 1 -8 23 41 6 0 0 0 1 1 -10 39 40 8 0 0 1 1 1 -6 9 4 6 1 0 1 0 3 -17 39 13 5 0 0 0 1 1 -1 25 31 10 0 1 0 0 1 -6 37 24 2 1 0 0 0 3 -10 16 26 4 0 1 1 0 1 -0 29 23 0 1 0 1 1 3 -9 22 11 10 1 1 0 0 1 -7 11 35 3 1 1 0 0 4 -11 7 2 9 1 1 0 0 4 -10 18 2 4 0 1 0 1 1 -2 37 40 7 0 1 1 1 1 -17 26 26 9 0 1 1 0 1 -20 7 50 10 1 0 0 0 1 -6 22 54 3 1 0 0 0 3 -18 28 42 2 1 1 0 0 4 -15 6 7 3 0 0 0 1 1 -7 32 17 9 0 0 1 1 1 -17 10 24 6 0 0 1 0 1 -20 38 30 10 1 0 0 0 1 -11 16 57 1 1 0 0 0 3 -3 39 56 9 1 0 0 1 3 -9 18 48 3 0 1 1 0 1 -13 22 5 4 0 1 0 0 1 -10 39 1 7 0 0 1 1 1 -20 13 59 3 0 1 0 1 1 -15 34 36 1 0 0 0 0 1 -12 9 60 0 0 1 0 0 1 -10 35 36 9 1 1 1 1 2 -0 21 37 10 0 1 1 1 1 -2 31 20 10 1 1 1 1 1 -0 38 32 7 1 1 1 0 5 -7 28 13 2 1 1 0 1 4 -20 10 58 1 1 0 0 0 1 -12 8 39 9 0 1 0 0 1 -7 37 23 5 0 0 0 1 1 -0 10 25 5 1 1 0 0 4 -13 20 59 8 0 0 1 0 1 -16 35 38 0 1 1 0 1 4 -7 14 51 6 0 1 1 1 1 -1 28 23 6 0 1 1 0 1 -3 16 43 5 0 1 0 0 1 -14 13 57 3 1 0 1 0 3 -16 39 49 4 1 0 1 1 3 -16 35 43 10 1 0 1 0 1 -4 35 59 5 1 0 0 0 1 -8 14 27 1 1 0 0 0 3 -2 12 4 1 0 0 1 0 1 -18 32 24 8 1 1 0 1 4 -0 29 36 4 1 1 0 1 4 -15 16 55 4 0 1 0 0 1 -11 35 6 8 1 1 0 0 4 -19 36 22 8 0 1 1 0 1 -14 13 18 1 1 0 0 0 3 -9 24 52 5 1 1 1 1 2 -19 25 59 10 1 1 0 1 1 -20 34 28 2 1 0 1 0 1 -2 14 18 10 1 0 1 0 1 -14 7 39 3 1 1 1 0 5 -13 8 14 3 0 0 1 1 1 -11 33 23 10 0 1 1 1 1 -4 26 15 4 1 0 0 0 3 -5 23 34 2 0 1 0 1 1 -1 24 60 7 1 0 0 1 1 -15 18 2 8 0 1 1 1 1 -6 38 7 0 0 0 1 0 1 -15 30 29 7 0 1 0 1 1 -7 26 59 5 0 0 0 0 1 -4 36 34 1 1 0 0 0 3 -16 7 51 9 0 0 1 0 1 -16 36 21 10 0 0 0 0 1 -13 10 58 0 1 0 0 1 3 -13 19 28 4 1 1 1 1 2 -4 13 22 3 0 0 1 0 1 -8 12 8 6 1 1 0 0 4 -13 7 11 9 1 0 0 1 3 -20 24 3 0 1 0 0 1 1 -3 38 10 7 1 0 1 1 3 -16 13 53 2 0 1 0 1 1 -20 25 20 6 0 1 0 1 1 -18 15 19 1 0 0 1 1 1 -6 23 42 5 0 0 0 0 1 -2 14 21 7 0 0 1 1 1 -14 10 47 8 1 0 0 1 3 -19 32 15 5 1 0 1 1 3 -10 25 20 7 1 0 1 0 3 -19 6 40 3 0 0 0 1 1 -13 33 57 4 1 1 1 0 5 -17 37 27 5 1 1 0 0 4 -9 39 14 4 0 0 1 1 1 -17 23 23 9 0 1 1 1 1 -3 18 15 4 0 0 1 0 1 -15 38 30 4 1 0 0 1 3 -5 18 9 10 1 1 1 1 1 -18 29 2 1 0 1 1 1 1 -13 33 29 2 1 0 1 0 3 -3 39 3 0 1 1 1 0 5 -0 27 10 0 0 0 1 0 1 -13 37 32 7 0 0 1 0 1 -5 12 29 7 0 1 1 0 1 -11 17 55 4 1 1 0 1 4 -14 11 20 1 0 0 1 0 1 -18 18 48 7 1 0 0 0 3 -13 36 9 9 0 1 1 1 1 -18 39 2 0 0 0 1 0 1 -7 13 5 5 0 0 0 1 1 -2 32 38 2 1 1 1 1 2 -17 22 38 9 0 0 0 0 1 -6 31 49 4 0 1 0 1 1 -6 6 54 0 0 0 0 1 1 -17 15 37 0 0 0 1 1 1 -19 10 25 7 1 0 1 0 3 -5 39 41 7 1 0 0 0 3 -3 8 12 0 0 1 0 0 1 -4 18 3 6 1 0 1 1 3 -15 22 33 9 1 0 0 0 3 -13 8 11 5 1 1 0 0 4 -10 28 43 2 0 1 0 1 1 -0 29 19 3 1 0 0 1 3 -6 21 48 9 1 1 0 0 4 -9 28 19 0 1 1 1 1 2 -18 25 23 5 0 0 1 1 1 -14 28 59 3 0 1 0 0 1 -0 35 22 7 1 0 0 1 3 -9 23 53 2 0 1 1 0 1 -8 22 36 1 0 0 1 0 1 -4 33 57 3 0 0 0 1 1 -20 39 50 4 0 1 0 0 1 -1 19 24 4 0 0 1 0 1 -12 24 57 1 0 1 0 1 1 -1 7 18 10 0 0 1 0 1 -13 38 28 0 0 0 1 0 1 -14 7 49 7 0 1 0 1 1 -4 17 18 0 1 0 0 0 3 -18 26 7 8 1 1 0 0 4 -2 40 28 2 1 0 0 0 1 -18 33 45 8 1 1 1 0 5 -20 9 16 4 0 1 0 1 1 -14 6 19 4 1 0 0 0 3 -17 11 52 8 0 0 0 1 1 -20 16 32 4 0 0 0 0 1 -9 17 16 1 1 1 0 0 4 -4 16 27 2 0 0 0 0 1 -11 38 30 10 1 0 1 0 1 -11 12 7 10 1 0 0 1 1 -2 10 28 4 0 1 0 1 1 -14 6 30 10 1 1 0 0 1 -4 20 39 9 0 0 1 1 1 -14 14 58 2 0 1 1 0 1 -3 13 53 4 1 1 1 0 5 -11 11 9 4 1 1 0 1 4 -7 31 59 10 0 1 0 0 1 -0 18 32 0 1 0 1 0 3 -3 26 11 8 1 1 1 1 2 -7 18 22 8 1 0 1 1 3 -19 36 33 10 0 0 1 0 1 -0 19 11 1 1 0 1 0 3 -1 27 45 9 0 0 0 0 1 -9 5 18 2 1 0 1 1 3 -16 27 17 9 1 1 1 1 2 -9 37 21 8 0 1 1 1 1 -15 26 39 4 0 0 1 0 1 -4 23 36 2 1 0 0 0 3 -9 32 13 9 0 0 1 0 1 -9 29 37 0 1 0 1 1 3 -0 17 6 8 1 0 0 1 3 -20 22 40 1 1 0 0 1 1 -15 39 15 0 0 0 0 0 1 -19 21 20 10 1 0 0 0 1 -13 20 59 9 1 1 0 1 1 -8 37 58 10 1 0 0 0 1 -11 25 23 0 1 1 0 0 4 -14 29 28 0 0 0 1 1 1 -17 31 12 1 1 1 0 0 4 -11 25 48 1 0 0 0 1 1 -12 30 44 2 0 0 0 1 1 -18 6 18 0 1 0 0 1 3 -2 32 22 10 1 0 1 1 1 -17 21 37 8 0 0 1 1 1 -18 18 29 10 1 1 0 0 1 +13 29 19 8 1 0 0 0 1 +8 24 59 3 0 0 0 1 1 +14 19 33 8 1 1 0 0 3 +12 5 7 1 1 1 1 0 3 +18 31 11 0 1 0 0 0 1 +15 19 20 7 1 1 1 1 5 +13 21 38 8 0 0 1 1 4 +13 6 22 3 1 1 0 0 3 +3 31 25 8 1 0 0 1 1 +6 21 52 0 1 0 1 0 1 +7 26 45 3 1 0 1 1 1 +5 18 8 3 0 1 1 0 3 +4 6 30 9 1 1 1 1 5 +7 20 24 8 1 1 0 0 3 +4 5 48 10 0 0 0 0 1 +19 35 7 4 1 0 1 1 1 +13 20 55 6 1 0 1 1 1 +14 13 24 0 1 1 0 1 5 +10 28 45 3 0 1 0 0 3 +18 22 51 4 1 1 0 1 5 +17 27 36 7 0 0 0 0 2 +8 26 40 5 1 1 1 1 5 +10 6 33 1 0 1 0 1 5 +16 27 7 4 0 0 0 1 2 +3 29 29 3 1 1 1 0 3 +16 26 35 5 1 0 0 1 1 +0 27 32 4 0 0 1 1 4 +17 33 52 0 1 1 1 1 5 +11 36 33 3 1 1 1 0 3 +6 27 7 10 0 0 0 0 1 +8 25 35 6 1 1 0 1 5 +2 22 58 4 1 1 1 0 3 +17 7 8 5 1 0 1 1 1 +1 24 22 1 1 0 0 1 1 +2 37 29 7 0 1 1 0 3 +7 10 37 9 0 0 0 0 1 +5 19 54 9 1 0 0 0 1 +10 37 55 2 1 1 1 0 3 +20 8 8 4 0 0 0 1 1 +13 13 2 7 0 1 1 0 3 +6 39 57 10 0 1 1 0 3 +8 10 51 6 0 1 0 1 5 +15 6 38 9 1 0 0 0 1 +2 35 21 2 1 0 0 0 1 +4 16 44 6 1 0 0 1 1 +5 36 40 1 0 1 0 1 5 +5 19 45 6 1 1 0 0 3 +11 24 5 2 0 0 0 0 2 +19 33 51 4 0 0 1 1 1 +1 35 48 3 0 1 0 0 3 +2 21 36 4 1 0 0 0 1 +9 21 19 2 1 0 0 1 1 +0 20 15 10 1 1 0 1 5 +9 26 33 6 0 0 0 0 2 +18 23 41 10 0 1 0 0 3 +0 36 48 1 0 1 0 1 5 +13 28 52 6 1 1 0 1 5 +12 17 49 5 1 1 1 0 3 +14 22 20 0 0 1 1 1 5 +7 36 39 0 0 1 0 0 3 +3 21 7 1 0 1 1 1 5 +1 39 20 3 1 0 0 0 1 +10 30 9 5 1 0 1 1 1 +8 31 44 6 1 1 1 0 3 +8 32 5 3 0 0 1 0 4 +6 28 28 2 0 0 1 1 4 +20 26 5 8 1 0 1 0 1 +9 38 44 3 1 1 1 1 5 +7 7 57 8 0 1 1 1 5 +1 14 5 7 0 1 0 0 3 +20 22 25 2 1 1 0 0 3 +13 8 47 5 0 0 1 1 4 +1 9 14 10 0 1 0 1 5 +10 10 40 4 1 0 0 1 1 +4 5 14 4 1 1 1 1 5 +12 13 8 5 0 0 0 0 2 +1 33 41 4 0 1 1 1 5 +4 15 28 2 0 0 1 0 4 +12 25 6 9 1 0 1 1 1 +1 37 38 4 0 1 1 1 5 +15 29 29 9 0 0 1 1 1 +2 28 59 3 1 0 0 1 1 +2 24 35 5 0 0 1 1 4 +10 27 8 9 0 0 1 0 1 +3 27 9 8 1 0 1 0 1 +15 40 49 1 1 1 0 1 5 +3 12 52 0 0 1 1 0 3 +15 10 30 2 1 0 0 0 1 +3 5 44 4 0 1 1 0 3 +17 35 29 2 0 0 1 0 4 +20 5 44 1 1 1 1 1 5 +10 38 4 0 0 1 1 0 3 +14 37 20 1 1 0 1 1 1 +20 5 29 1 0 0 1 1 1 +11 5 50 7 0 1 1 1 5 +18 17 36 6 0 0 0 1 2 +20 34 9 5 0 0 0 1 1 +3 15 1 10 1 1 1 0 3 +18 15 38 9 0 1 0 1 5 +15 10 18 10 0 0 0 1 1 +10 14 21 8 1 1 1 1 5 +15 31 10 0 0 0 1 1 4 +8 27 9 2 0 0 1 0 4 +13 20 25 8 1 0 0 1 1 +12 16 44 10 1 0 0 1 1 +5 5 47 1 1 0 1 1 1 +9 13 19 1 0 0 1 1 4 +15 26 50 10 1 0 0 1 1 +17 16 27 7 1 1 1 0 3 +17 27 7 9 1 0 0 1 1 +1 16 56 7 0 1 0 0 3 +16 34 6 4 0 0 1 1 4 +16 31 20 1 0 0 1 1 4 +1 22 6 6 0 1 1 1 5 +19 24 53 9 1 0 0 1 1 +15 14 5 5 0 1 1 1 5 +2 31 46 3 0 1 1 1 5 +12 30 48 9 0 0 1 1 1 +14 31 15 5 0 1 1 1 5 +6 33 50 7 1 1 0 1 5 +2 8 9 1 0 0 0 0 2 +8 9 52 1 1 0 1 1 1 +2 34 17 4 1 1 1 0 3 +14 23 5 5 1 1 1 0 3 +2 21 4 2 0 1 1 1 5 +7 40 7 8 1 1 1 1 5 +20 23 26 10 1 0 1 1 1 +8 14 16 3 1 0 0 1 1 +10 36 10 1 1 1 0 0 3 +11 31 19 9 1 1 1 1 5 +14 20 14 6 1 1 0 1 5 +9 12 27 10 1 0 0 1 1 +6 28 10 3 0 0 0 0 2 +13 10 9 4 0 1 1 0 3 +18 30 21 2 1 1 1 1 5 +12 33 39 9 1 0 1 0 1 +18 24 22 5 0 1 1 0 3 +6 18 9 8 1 1 1 1 5 +5 29 23 8 0 0 0 0 2 +13 34 51 1 0 1 0 0 3 +9 7 55 9 0 0 0 0 1 +4 25 5 10 0 1 1 0 3 +1 24 6 4 0 1 1 1 5 +12 21 50 5 1 1 0 0 3 +9 33 18 0 1 1 1 0 3 +5 6 36 4 0 1 0 0 3 +4 25 30 2 1 0 1 1 1 +18 31 60 8 1 0 0 0 1 +15 26 34 6 1 0 0 0 1 +2 13 36 0 0 0 0 1 2 +8 6 54 9 0 1 0 1 5 +13 24 15 6 1 0 1 1 1 +6 10 20 4 1 1 0 1 5 +3 14 33 1 0 0 0 1 2 +14 40 3 0 0 0 1 0 1 +13 35 29 1 0 0 1 1 4 +14 34 32 4 0 0 0 0 2 +3 17 49 7 1 0 0 1 1 +3 7 50 9 1 0 1 0 1 +13 33 20 0 0 1 1 1 5 +8 20 58 1 1 0 1 1 1 +12 11 36 5 1 1 1 0 3 +7 40 60 0 1 1 1 1 5 +4 34 39 10 1 0 0 0 1 +6 6 7 6 0 1 0 0 3 +9 39 34 2 0 1 1 1 5 +2 14 58 6 0 1 0 0 3 +2 29 21 1 0 0 0 0 2 +11 5 41 8 1 0 1 1 1 +1 19 31 3 1 0 0 0 1 +13 9 5 8 0 1 1 0 3 +7 32 48 10 0 1 0 1 5 +15 5 4 7 1 1 1 0 3 +19 26 26 5 0 1 0 1 5 +18 12 53 10 0 1 1 0 3 +14 29 3 3 0 1 1 0 3 +3 36 20 10 1 0 0 1 1 +14 37 6 10 0 1 0 0 3 +9 38 60 10 0 1 1 1 5 +13 36 12 3 0 1 0 1 5 +5 16 16 0 1 1 0 1 5 +20 30 7 1 0 1 1 1 5 +4 26 1 6 1 1 1 1 5 +3 10 13 5 1 1 1 0 3 +12 20 46 6 0 0 1 0 4 +10 28 40 1 1 0 1 1 1 +5 27 47 2 1 1 0 1 5 +2 34 40 9 0 0 0 0 1 +6 6 15 1 0 0 0 1 2 +8 38 52 1 1 1 0 1 5 +0 33 29 8 0 1 1 1 5 +9 35 28 9 1 0 1 0 1 +11 15 49 2 1 1 0 1 5 +4 29 35 5 1 0 1 1 1 +8 37 26 0 1 0 0 1 1 +20 29 9 3 1 0 0 0 1 +13 29 42 4 1 0 0 1 1 +13 14 51 8 0 1 0 1 5 +16 22 19 8 0 0 0 0 2 +6 27 23 3 0 0 0 0 2 diff --git a/images/robot3.bmp b/images/robot3.bmp new file mode 100644 index 0000000..2b11015 Binary files /dev/null and b/images/robot3.bmp differ diff --git a/learning.py b/learning.py new file mode 100644 index 0000000..e988eee --- /dev/null +++ b/learning.py @@ -0,0 +1,46 @@ +from sklearn import tree +import graphviz + +class Learning(): + + X = [] + Y = [] + clf = tree.DecisionTreeClassifier() + def load_data(self): + file = open('dane.txt', "r") + data_str = [] + data_str_separated = [] + data = [] + for lines in file: + s = file.readline() + data_str.append(s.replace(' \n', '')) + for lines in data_str: + s = lines.split(' ') + data_str_separated.append(s) + for lines in data_str_separated: + line = list(map(int, lines)) + data.append(line) + for lines in data: + self.Y.append(lines[8]) + lines.pop() + self.X.append(lines) + def learn(self): + #clf = tree.DecisionTreeClassifier() + self.clf = self.clf.fit(self.X, self.Y) + def draw_tree(self): + dot_data = tree.export_graphviz(self.clf, out_file=None, filled=True, class_names= ['1', '2', '3', '4', '5'], rounded=True, special_characters=True) + graph = graphviz.Source(dot_data) + graph.render("data") + + def predict(self, param_array): + print(self.clf.predict([param_array])) + if self.clf.predict([param_array]) == 1: + print("oflagowac") + if self.clf.predict([param_array]) == 2: + print("zdetonowac") + if self.clf.predict([param_array]) == 3: + print("sprzedac na allegro") + if self.clf.predict([param_array]) == 4: + print("sprzedac na czarnym rynku") + if self.clf.predict([param_array]) == 5: + print("obejrzec") diff --git a/main.py b/main.py index 16f3257..6ff026a 100644 --- a/main.py +++ b/main.py @@ -14,7 +14,8 @@ from settings import * from sprites import * from graphsearch import * from astar2 import * -from generate_examples import * +from pizza import * +from learning import * class Game: @@ -26,16 +27,18 @@ class Game: pg.key.set_repeat(500, 100) self.load_data() self.wentyl_bezpieczenstwa = 0 + #ExampleGenerator.generate(ExampleGenerator) def load_data(self): game_folder = path.dirname(__file__) self.map_data = [] - with open(path.join(game_folder, 'map.txt'), 'rt') as f: + with open(path.join(game_folder, 'main_map.txt'), 'rt') as f: for line in f: self.map_data.append(line) def new(self): # initialize all variables and do all the setup for a new game + #glebokosc rozmiar masa moc szkodliwosc zabawka stan teledysk self.all_sprites = pg.sprite.Group() self.walls = pg.sprite.Group() self.mines = pg.sprite.Group() @@ -44,6 +47,7 @@ class Game: for col, tile in enumerate(tiles): if tile == '2': Mine(self, col, row) + Mine.set_parameters(Mine,-5,32,6,7,1,0,0,0) if tile == '3': Bomb(self, col, row) if tile == '4': @@ -111,21 +115,27 @@ class Game: self.player.parse_maze_moves() self.i_like_to_move_it() self.wentyl_bezpieczenstwa = 1 - if event.key == pg.K_F3 and self.wentyl_bezpieczenstwa == 0: + if event.key == pg.K_F3: + pg.event.clear() player_moves = BFS.run() self.graph_move(player_moves) - self.wentyl_bezpieczenstwa = 1 + #self.wentyl_bezpieczenstwa = 1 if event.key == pg.K_F4 and self.wentyl_bezpieczenstwa == 0: + pg.event.clear() #print("test1") agent = SweeperAgent() player_moves = SweeperAgent.run(agent) self.graph_move(player_moves) self.wentyl_bezpieczenstwa = 1 + # Test.run() if event.key == pg.K_F5: - ExampleGenerator.generate() + print("lol xD") + pg.event.clear() if event.key == pg.K_F6: - X = [[6,15,31,5,0,0,1,0],[6,36,5,8,1,1,1,0], + pg.event.clear() + #self.wentyl_bezpieczenstwa = 1 + """X = [[6,15,31,5,0,0,1,0],[6,36,5,8,1,1,1,0], [13,40,29,3,0,0,0,0], [15,25,23,7,0,0,1,1], [17,34,5,5,1,1,0,1], [3,9,28,8,0,0,1,0], [18,38,43,6,1,1,1,1], [3,8,53,4,1,1,1,1], @@ -133,7 +143,16 @@ class Game: Y = [1,5,1,1,4,1,2,2,1,1] clf = tree.DecisionTreeClassifier() clf = clf.fit(X,Y) - tree.plot_tree(clf) + tree.plot_tree(clf)""" + + """my_learning = Learning() + my_learning.load_data() + my_learning.learn() + my_learning.draw_tree() + my_learning.predict()""" + + + diff --git a/main_map.txt b/main_map.txt new file mode 100644 index 0000000..1c0878d --- /dev/null +++ b/main_map.txt @@ -0,0 +1,7 @@ +.>.p... +###.ppp +....p.. +...pp.p +..p###. +..p#2#. +..ppp.. \ No newline at end of file diff --git a/generate_examples.py b/pizza.py similarity index 61% rename from generate_examples.py rename to pizza.py index d57fac0..1981322 100644 --- a/generate_examples.py +++ b/pizza.py @@ -3,12 +3,13 @@ import random class ExampleGenerator(): + @staticmethod def generate(): list = [[]] - for i in range(1000): + for i in range(200): while True: c = [random.randrange(0, 21), random.randrange(5, 41), random.randrange(1, 61), random.randrange(0, 11), random.randrange(0, 2), random.randrange(0, 2), random.randrange(0, 2), random.randrange(0, 2)] if c in list: @@ -18,42 +19,43 @@ class ExampleGenerator(): list.append(c) f = open("dane.txt", "w") - + #f1 = open("dane_slownie.txt", "w") + #glebokosc rozmiar masa moc szkodliwosc zabawka stan teledysk for i in range(len(list)): if i != 0: - #glebokosc - if list[i][0] <= 19: - #rozmiar - if list[i][1] <= 39: + #zabawka + if list[i][5] == 1: + #teledysk + if list[i][7] == 1: + list[i].append(5) + else: + list[i].append(3) + else: + #glebokosc + if list[i][0] >= 19: + list[i].append(1) + else: #masa - if list[i][2] <= 58: - #moc - if list[i][3] <= 9: - #szkodliwosc - if list[i][4] == 1: - #zabawka - if list[i][5] == 1: + if list[i][2] >= 58: + list[i].append(1) + else: + #rozmiar + if list[i][1] >= 39: + list[i].append(1) + else: + #moc + if list[i][3] >= 9: + list[i].append(1) + else: + #szkodliwosc + if list[i][4] == 1: + list[i].append(1) + else: #stan if list[i][6] == 1: - #teledysk - if list[i][7] == 1: - list[i].append(2) - else: - list[i].append(5) - else: list[i].append(4) - else: - list[i].append(3) - else: - list[i].append(1) - else: - list[i].append(1) - else: - list[i].append(1) - else: - list[i].append(1) - else: - list[i].append(1) + else: + list[i].append(2) for i in range(len(list)): if i == 0: diff --git a/sprites.py b/sprites.py index 38c55dc..2263ca9 100644 --- a/sprites.py +++ b/sprites.py @@ -4,6 +4,7 @@ import ctypes import ast from settings import * from maze import * +from learning import * class Player(pg.sprite.Sprite): def __init__(self, game, x, y, direction = 'Right'): @@ -11,8 +12,8 @@ class Player(pg.sprite.Sprite): pg.sprite.Sprite.__init__(self, self.groups) self.game = game #self.image = pg.Surface((TILESIZE, TILESIZE)) - self.image = pg.image.load('images/robot2.bmp') - self.baseImage = pg.image.load('images/robot2.bmp') + self.image = pg.image.load('images/robot3.bmp') + self.baseImage = pg.image.load('images/robot3.bmp') #self.image.fill(YELLOW) self.image = pg.transform.scale(self.image, (TILESIZE, TILESIZE)) self.baseImage = pg.transform.scale(self.image, (TILESIZE, TILESIZE)) @@ -22,6 +23,8 @@ class Player(pg.sprite.Sprite): self.direction = direction self.maze = Maze() self.moves = '' + self.my_learning = Learning() + self.decision_tree_learning() def set_direction(self, direction): self.direction = direction @@ -84,10 +87,11 @@ class Player(pg.sprite.Sprite): print("Mine Ahead!") self.x += -1 else: - self.x += -1 + self.x += -1 print("I move: " + str(self.direction)) print("My direction is: " + str(self.direction)) + self.check_bomb() def check_border(self, dx=0, dy=0): @@ -180,6 +184,32 @@ class Player(pg.sprite.Sprite): print(self.moves) + def decision_tree_learning(self): + self.my_learning.load_data() + self.my_learning.learn() + self.my_learning.draw_tree() + #my_learning.predict() + + """ sprawdzenie danych miny """ + def check_bomb(self): + if self.check_if_on_mine(): + current_mine = self.get_my_mine_object() + mine_params = current_mine.get_parameters() + self.my_learning.predict(mine_params) + return + + + def check_if_on_mine(self): + for mine in self.game.mines: + if mine.x == self.x and mine.y == self.y: + return True + return False + + def get_my_mine_object(self): + if self.check_if_on_mine(): + for mine in self.game.mines: + if mine.x == self.x and mine.y == self.y: + return mine @@ -215,6 +245,21 @@ class Mine(pg.sprite.Sprite): self.x = x self.y = y + + def set_parameters(self, glebokosc, rozmiar, masa, moc, szkodliwosc, zabawka, teledysk, stan): + self.glebokosc = glebokosc + self.rozmiar = rozmiar + self.masa = masa + self.moc = moc + self.szkodliwosc = szkodliwosc + self.zabawka = zabawka + self.teledysk = teledysk + self.stan = stan + + def get_parameters(self): + param_array = [self.glebokosc, self.rozmiar, self.masa, self.moc, self.szkodliwosc, self.zabawka, self.teledysk, self.stan] + return param_array + def update(self): self.rect.x = self.x * TILESIZE self.rect.y = self.y * TILESIZE