diff --git a/.gitignore b/.gitignore
index 1c18d74..19c8d2e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@
*.o
.DS_Store
.token
+.idea
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 284c6d9..00872aa 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/paranormal-or-skeptic-ISI-public.iml b/.idea/paranormal-or-skeptic-ISI-public.iml
deleted file mode 100644
index d6ebd48..0000000
--- a/.idea/paranormal-or-skeptic-ISI-public.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb
index e69de29..dcba01c 100644
--- a/.idea/sonarlint/issuestore/index.pb
+++ b/.idea/sonarlint/issuestore/index.pb
@@ -0,0 +1,7 @@
+
+:
+
+.gitignore,a/5/a5cc2925ca8258af241be7e5b0381edf30266302
+:
+
+log_reg.py,8/d/8defb5199d336fa9e58cbe5b8c4833d0e222ccf9
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 8c928a6..0000000
--- a/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-Skeptic vs paranormal subreddits
-================================
-
-Classify a reddit as either from Skeptic subreddit or one of the
-"paranormal" subreddits (Paranormal, UFOs, TheTruthIsHere, Ghosts,
-,Glitch-in-the-Matrix, conspiracytheories).
-
-Output label is the probability of a paranormal subreddit.
-
-Sources
--------
-
-Data taken from .
diff --git a/config.txt b/config.txt
deleted file mode 100644
index f148428..0000000
--- a/config.txt
+++ /dev/null
@@ -1 +0,0 @@
---metric Likelihood --metric Accuracy --metric F1 --metric F0:N --metric F9999999:N --precision 4 --in-header in-header.tsv --out-header out-header.tsv
diff --git a/dev-0/out.tsv b/dev-out.tsv
similarity index 99%
rename from dev-0/out.tsv
rename to dev-out.tsv
index 5b39cc0..c342f25 100644
--- a/dev-0/out.tsv
+++ b/dev-out.tsv
@@ -16,7 +16,7 @@
1
0
0
-0
+1
1
1
0
@@ -95,7 +95,7 @@
0
0
1
-0
+1
1
0
0
@@ -123,7 +123,7 @@
0
0
0
-0
+1
0
0
0
@@ -189,7 +189,7 @@
0
0
1
-1
+0
0
0
1
@@ -321,7 +321,7 @@
0
1
0
-0
+1
1
0
0
@@ -367,7 +367,7 @@
0
0
0
-0
+1
0
0
0
@@ -425,7 +425,7 @@
1
0
0
-0
+1
0
1
1
@@ -436,7 +436,7 @@
0
0
0
-0
+1
0
0
1
@@ -497,7 +497,6 @@
0
0
0
-0
1
0
0
@@ -508,6 +507,7 @@
0
0
0
+0
1
0
0
@@ -529,7 +529,7 @@
0
0
1
-0
+1
0
0
0
@@ -639,8 +639,8 @@
0
1
0
-1
-1
+0
+0
1
0
1
@@ -652,7 +652,7 @@
1
0
1
-0
+1
1
1
0
@@ -691,11 +691,11 @@
0
0
1
-1
0
0
0
1
+1
0
0
1
@@ -782,7 +782,7 @@
1
0
1
-0
+1
0
1
0
@@ -846,7 +846,7 @@
1
0
0
-0
+1
0
1
1
@@ -1056,7 +1056,7 @@
0
1
0
-1
+0
0
0
0
@@ -1067,7 +1067,7 @@
0
0
1
-1
+0
0
0
0
@@ -1110,7 +1110,7 @@
0
0
0
-1
+0
0
0
1
@@ -1311,13 +1311,13 @@
0
0
0
-0
1
0
0
0
0
0
+0
1
1
1
@@ -1366,7 +1366,7 @@
0
0
0
-0
+1
1
0
0
@@ -1395,7 +1395,7 @@
0
0
1
-1
+0
0
0
1
@@ -1416,7 +1416,7 @@
0
0
0
-1
+0
1
0
0
@@ -1435,7 +1435,7 @@
0
0
1
-0
+1
0
0
1
@@ -1476,7 +1476,7 @@
0
0
0
-1
+0
1
0
0
@@ -1504,7 +1504,7 @@
0
0
0
-0
+1
1
0
0
@@ -1524,7 +1524,7 @@
0
1
0
-0
+1
0
0
1
@@ -1739,7 +1739,7 @@
1
0
0
-0
+1
0
1
1
@@ -1820,7 +1820,7 @@
0
0
0
-0
+1
0
0
0
@@ -1848,7 +1848,7 @@
1
0
0
-0
+1
1
0
0
@@ -1922,7 +1922,7 @@
1
0
0
-0
+1
0
0
1
@@ -1995,7 +1995,7 @@
0
0
1
-0
+1
1
0
0
@@ -2116,7 +2116,7 @@
0
0
1
-1
+0
1
0
0
@@ -2182,12 +2182,12 @@
0
1
0
+1
0
0
0
0
-0
-0
+1
0
0
0
@@ -2295,7 +2295,7 @@
0
0
0
-0
+1
0
0
0
@@ -2520,7 +2520,7 @@
0
0
1
-0
+1
0
0
0
@@ -2584,7 +2584,7 @@
0
0
0
-0
+1
0
0
1
@@ -2660,13 +2660,13 @@
0
0
0
-0
+1
0
0
1
1
0
-0
+1
1
0
0
@@ -2821,7 +2821,7 @@
0
0
0
-1
+0
1
0
0
@@ -2893,7 +2893,7 @@
0
0
1
-0
+1
0
0
1
@@ -2920,7 +2920,7 @@
0
1
0
-1
+0
0
1
1
@@ -2961,14 +2961,14 @@
0
0
0
-1
0
0
0
0
0
-1
0
+1
+1
0
0
0
@@ -2997,13 +2997,13 @@
1
1
0
-0
+1
1
0
0
0
1
-0
+1
0
0
0
@@ -3092,7 +3092,7 @@
0
1
0
-0
+1
0
0
0
@@ -3135,7 +3135,7 @@
0
0
1
-1
+0
1
0
0
@@ -3179,7 +3179,7 @@
0
0
1
-0
+1
1
1
1
@@ -3197,7 +3197,7 @@
0
0
0
-0
+1
0
1
0
@@ -3259,7 +3259,7 @@
0
0
0
-0
+1
1
1
0
@@ -3356,7 +3356,7 @@
0
0
0
-0
+1
0
0
0
@@ -3400,14 +3400,14 @@
0
0
0
-1
0
0
-1
0
+1
0
0
0
+1
0
1
0
@@ -3494,7 +3494,7 @@
0
1
0
-0
+1
0
0
0
@@ -3632,7 +3632,7 @@
0
0
0
-1
+0
1
0
0
@@ -3710,7 +3710,7 @@
0
0
1
-0
+1
0
0
0
@@ -3754,7 +3754,7 @@
0
1
0
-1
+0
0
1
0
@@ -3822,7 +3822,7 @@
0
1
0
-0
+1
0
1
1
@@ -3879,7 +3879,7 @@
1
0
0
-0
+1
0
0
1
@@ -3910,7 +3910,7 @@
0
1
0
-1
+0
0
0
0
@@ -3966,7 +3966,7 @@
0
1
0
-0
+1
0
0
1
@@ -4011,7 +4011,7 @@
1
0
0
-0
+1
0
0
1
@@ -4208,7 +4208,7 @@
0
1
1
-0
+1
1
1
0
@@ -4238,7 +4238,7 @@
0
0
0
-1
+0
0
1
1
@@ -4277,7 +4277,7 @@
1
0
0
-1
+0
1
0
0
@@ -4459,14 +4459,14 @@
1
0
0
-1
+0
1
0
0
0
1
0
-0
+1
0
0
0
@@ -4495,11 +4495,11 @@
0
0
0
+1
0
0
0
-0
-0
+1
0
0
0
@@ -4527,7 +4527,7 @@
0
1
1
-0
+1
0
1
0
@@ -4537,7 +4537,7 @@
1
0
0
-0
+1
0
0
1
@@ -4743,7 +4743,7 @@
0
0
0
-1
+0
0
0
0
@@ -4895,9 +4895,9 @@
0
0
0
-0
1
1
+0
1
0
0
@@ -4909,7 +4909,7 @@
0
0
1
-0
+1
0
0
0
@@ -5057,7 +5057,7 @@
1
0
0
-0
+1
0
1
0
@@ -5135,7 +5135,7 @@
0
0
0
-1
+0
1
0
0
@@ -5162,7 +5162,7 @@
0
0
0
-0
+1
0
0
0
@@ -5235,7 +5235,7 @@
1
1
0
-0
+1
1
1
1
diff --git a/dev-stats.txt b/dev-stats.txt
new file mode 100644
index 0000000..fbf8468
--- /dev/null
+++ b/dev-stats.txt
@@ -0,0 +1,5 @@
+Likelihood 0.0000
+Accuracy 0.7627
+F1.0 0.6495
+Precision 0.6806
+Recall 0.6211
diff --git a/dev-0/expected.tsv b/expected-dev.tsv
similarity index 100%
rename from dev-0/expected.tsv
rename to expected-dev.tsv
diff --git a/train/expected.tsv b/expected-train.tsv
similarity index 100%
rename from train/expected.tsv
rename to expected-train.tsv
diff --git a/geval b/geval
deleted file mode 100755
index b68b316..0000000
Binary files a/geval and /dev/null differ
diff --git a/dev-0/in.tsv.xz b/in-dev.tsv.xz
similarity index 100%
rename from dev-0/in.tsv.xz
rename to in-dev.tsv.xz
diff --git a/in-header.tsv b/in-header.tsv
deleted file mode 100644
index 5615913..0000000
--- a/in-header.tsv
+++ /dev/null
@@ -1 +0,0 @@
-PostText Timestamp
diff --git a/train/in.tsv.xz b/in-train.tsv.xz
similarity index 100%
rename from train/in.tsv.xz
rename to in-train.tsv.xz
diff --git a/log_reg.py b/log_reg.py
index dbe4d53..74ccf0a 100644
--- a/log_reg.py
+++ b/log_reg.py
@@ -23,23 +23,19 @@ def doc2vec(doc):
return np.mean([word2vec[word] for word in doc if word in word2vec] or [np.zeros(300)], axis=0)
-x_train = pd.read_table('train/in.tsv.xz', compression='xz', sep='\t', header=None, error_bad_lines=False, quoting=3)
-y_train = pd.read_table('train/expected.tsv', sep='\t', header=None, quoting=3)
-x_dev = pd.read_table('dev-0/in.tsv.xz', compression='xz', sep='\t', header=None, quoting=3)
-x_test = pd.read_table('test-A/in.tsv.xz', compression='xz', sep='\t', header=None, quoting=3)
+x_train = pd.read_table('in-train.tsv.xz', compression='xz', sep='\t', header=None, error_bad_lines=False, quoting=3)
+y_train = pd.read_table('expected-train.tsv', sep='\t', header=None, quoting=3)
+x_dev = pd.read_table('in-dev.tsv.xz', compression='xz', sep='\t', header=None, quoting=3)
y_train = y_train[0]
x_train = x_train[0].str.lower()
x_train = [word_tokenize(x) for x in x_train]
x_dev = x_dev[0].str.lower()
x_dev = [word_tokenize(x) for x in x_dev]
-x_test = x_test[0].str.lower()
-x_test = [word_tokenize(x) for x in x_test]
word2vec = gensim.load('word2vec-google-news-300')
x_train = [doc2vec(doc) for doc in x_train]
x_dev = [doc2vec(doc) for doc in x_dev]
-x_test = [doc2vec(doc) for doc in x_test]
model = NeuralNetworkModel()
BATCH_SIZE = 1024
@@ -71,16 +67,6 @@ with torch.no_grad():
y = (outputs > 0.5)
y_dev.extend(y)
- for i in range(0, len(x_test), BATCH_SIZE):
- X = x_test[i:i + BATCH_SIZE]
- X = torch.tensor(X)
- outputs = model(X.float())
- y = (outputs >= 0.5)
- y_test.extend(y)
-
y_dev = np.asarray(y_dev, dtype=np.int32)
Y_dev = pd.DataFrame({'label': y_dev})
-Y_dev.to_csv(r'dev-0/out.tsv', sep='\t', index=False, header=False)
-y_test = np.asarray(y_test, dtype=np.int32)
-Y_test = pd.DataFrame({'label': y_test})
-Y_test.to_csv(r'test-A/out.tsv', sep='\t', index=False, header=False)
+Y_dev.to_csv(r'dev-out.tsv', sep='\t', index=False, header=False)
diff --git a/out-header.tsv b/out-header.tsv
deleted file mode 100644
index 0767caf..0000000
--- a/out-header.tsv
+++ /dev/null
@@ -1 +0,0 @@
-Label
diff --git a/test-A/in.tsv.xz b/test-A/in.tsv.xz
deleted file mode 100644
index 5e4f4f4..0000000
Binary files a/test-A/in.tsv.xz and /dev/null differ
diff --git a/test-A/out.tsv b/test-A/out.tsv
deleted file mode 100644
index 68febb8..0000000
--- a/test-A/out.tsv
+++ /dev/null
@@ -1,5152 +0,0 @@
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-1
-1
-0
-0
-1
-1
-0
-1
-1
-1
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-1
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-1
-0
-1
-0
-1
-0
-0
-1
-0
-1
-1
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-0
-1
-1
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-1
-0
-1
-0
-1
-0
-1
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-1
-1
-1
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-1
-0
-0
-1
-0
-1
-0
-1
-0
-1
-0
-0
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-1
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-1
-1
-0
-0
-1
-0
-0
-1
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-0
-1
-0
-1
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-0
-1
-0
-1
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-1
-1
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-0
-1
-1
-1
-1
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-1
-0
-1
-1
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-1
-1
-0
-0
-0
-1
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-0
-1
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-1
-1
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-0
-1
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-0
-1
-1
-1
-0
-0
-1
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-1
-0
-1
-1
-1
-0
-0
-1
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-1
-0
-0
-0
-0
-1
-0
-1
-1
-0
-1
-0
-0
-1
-1
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-1
-0
-1
-1
-1
-0
-0
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-1
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-1
-0
-0
-1
-1
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-1
-1
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-1
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-1
-1
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-1
-0
-1
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-1
-1
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-1
-1
-0
-0
-0
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-1
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-1
-0
-1
-1
-1
-1
-1
-0
-0
-1
-0
-1
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-1
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-0
-1
-1
-1
-0
-1
-1
-0
-0
-1
-1
-1
-0
-1
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-1
-0
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-1
-1
-0
-1
-0
-1
-1
-0
-1
-0
-1
-0
-1
-1
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-1
-0
-1
-0
-1
-1
-1
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-1
-0
-1
-1
-0
-1
-1
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-1
-1
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-1
-0
-0
-1
-0
-1
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-1
-1
-1
-0
-0
-1
-1
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-1
-1
-0
-1
-0
-1
-0
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-1
-0
-1
-1
-1
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-1
-1
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-1
-1
-0
-1
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-1
-0
-1
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-0
-1
-1
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-1
-0
-1
-1
-1
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-1
-1
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-1
-1
-0
-0
-1
-0
-0
-1
-1
-0
-0
-1
-1
-0
-0
-1
-1
-0
-0
-0
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-1
-1
-0
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-1
-0
-0
-1
-0
-1
-0
-1
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-1
-1
-1
-0
-1
-1
-0
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-1
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-1
-0
-1
-0
-0
-1
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-1
-1
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-1
-0
-0
-1
-0
-1
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-1
-1
-1
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-0
-1
-1
-1
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-1
-0
-1
-1
-0
-0
-1
-0
-1
-1
-1
-0
-0
-0
-0
-1
-1
-0
-1
-1
-1
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-0
-1
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-1
-0
-1
-0
-0
-1
-0
-1
-0
-1
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-1
-1
-0
-1
-1
-1
-0
-0
-1
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-0
-0
-1
-0
-1
-1
-0
-1
-1
-0
-1
-0
-0
-1
-0
-0
-0
-1
-1
-0
-0
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-1
-0
-0
-0
-0
-1
-1
-0
-0
-1
-0
-1
-1
-0
-0
-1
-0
-0
-1
-0
-1
-0
-0
-1
-0
-1
-1
-1
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-1
-1
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-1
-1
-1
-0
-0
-1
-1
-0
-0
-1
-0
-1
-0
-1
-1
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-1
-0
-1
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-1
-0
-1
-1
-1
-1
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-0
-0
-0
-1
-1
-1
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-1
-0
-0
-1
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-1
-1
-1
-0
-0
-1
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-1
-1
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-1
-0
-0
-0
-1
-1
-0
-1
-1
-1
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-1
-0
-0
-0
-0
-1
-1
-1
-1
-1
-0
-0
-1
-0
-0
-0
-1
-1
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-1
-0
-1
-0
-1
-0
-0
-1
-1
-0
-1
-0
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-1
-1
-1
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-1
-0
-0
-0
-1
-0
-0
-0
-0