diff --git a/code_prediction.py b/code_prediction.py index 904f921..969e898 100644 --- a/code_prediction.py +++ b/code_prediction.py @@ -2,19 +2,37 @@ from collections import defaultdict import math import pickle -open_file=open('naive_base_model.pkl','rb') -write_file_test=open('test-A/out.tsv','w') -write_file_dev=open('dev-0/out.tsv','w') -pickle_loaded=pickle.load(open_file) +open_file = open('naive_base_model.pkl', 'rb') +pickle_loaded = pickle.load(open_file) paranomal_class_logprob, skeptic_class_logprob, word_logprobs = pickle_loaded +#pickle_loaded=pickle.load(open_file) +#paranomal_class_logprob, skeptic_class_logprob, word_logprobs = pickle_loaded #Niektórych słów nie bezie w zbiorze treningowym dev-0 i dev-A -for i in word_logprobs.keys(): - for token, tokens in word_logprobs[i].items(): - try: - if (word_logprobs['skeptic'][token] > word_logprobs['paranormal'][token]): - write_file_test.write("S\n") - write_file_dev.write("S\n") +def prediction(input,output): + output_file = open(output,'w') + with open(input,encoding='utf-8') as in_file: + for line in in_file: + temp_paranormal_logprob = paranomal_class_logprob + temp_skeptic_logprob = skeptic_class_logprob + text, timestamp = line.rstrip('\n').split('\t') + tokens = text.lower().split(' ') + for token in tokens: + if token not in word_logprobs['paranormal']: + word_logprobs['paranormal'][token] = 0 + if token not in word_logprobs['skeptic']: + word_logprobs['skeptic'][token] = 0 + + temp_paranormal_logprob += paranomal_class_logprob + word_logprobs['paranormal'][token] + temp_skeptic_logprob += skeptic_class_logprob + word_logprobs['skeptic'][token] + + if temp_paranormal_logprob > temp_skeptic_logprob: + output_file.write('P\n') else: - write_file_test.write("P\n") - write_file_dev.write("P\n") - except KeyError:break \ No newline at end of file + output_file.write('S\n') + +def main(): + prediction('dev-0/in.tsv','dev-0/out.tsv') + prediction('test-A/in.tsv/in.tsv','test-A/out.tsv') + +main() + diff --git a/dev-0/out.tsv b/dev-0/out.tsv index 901d079..ff6ba76 100644 --- a/dev-0/out.tsv +++ b/dev-0/out.tsv @@ -1,41 +1,2119 @@ +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S P P P S S S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +P +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +P +S +P +S +S +P +S +S +S +S +P +S +S +P +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +P +S +S +S +P +S +S +S +S +S +S +P +S +P +S +S +P +S +P +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +S +P +S +P +P +P +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +P +P +S +S +S +P +S +S +S +S +P +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +P +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +P +P +S +S +S +S +P +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +P +P +P +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +P +P +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +P +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +P +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +P +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +P +P +S +S +P +S +S +S +P +S +P +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +P +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +P +S +S +P +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +P +P +P +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +P +S +S +P +S +S +S +S +S +P +P +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +P +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S P P P P P S +S +S +S +S +S +S +S +S +S +S +S +S P S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +P +P +S +S +S +P +S +S +S +P +S +S +P +P +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S P P P S P +S +S +S P +S +S +P +S +S +S +P +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S P S S P P P -P -P +S +S +S +S +S +S +S +S +S +S S P -P -P S -P -P S -P -P +S +S +S +S +S +S +S +S +S +S S S S @@ -44,15 +2122,823 @@ P P P P +P +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S S P P +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S P P +S +S +S +S +S +S +S +S +P +S +S +S +S +S P S P P +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +P +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +P +S +P +S +S +S +S +S +P +S +S +S +S +S +S +P +S +P +S +S +P +S +S +P +P +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +P +S +P +S +S +S +S +S +P +S +S +S +P +S +P +S +S +S +S +S +S +P +S +S +S +P +S +S +S +P +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +P +P +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +P +S +S +S +P +S +S +P +S +S +S +S +S +P +S +S +S +P +S +S +P +S +S +S +S +S +S +P +P +S +S +S +S +S +P +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +P +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +P +S +S +S +S +S +P +S +P +S +S +S +S +S +S +P +S +S +S +P +P +S +S +S +S +S +P +S +S +S +S +P +S +S +P +S +S P P P @@ -61,3 +2947,2326 @@ P S P S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +P +S +S +S +P +S +S +S +S +S +S +S +P +S +S +P +S +P +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +P +S +S +S +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +P +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +P +P +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +P +S +S +S +S +P +P +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +P +S +P +S +S +S +P +P +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +P +S +P +S +S +S +S +P +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +P +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +P +S +P +S +P +S +S +S +S +S +S +S +S +P +S +S +P +S +S +P +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +P +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +P +S +S +S +P +S +S +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +P +P +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +P +S +S +P +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +P +P +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S diff --git a/test-A/out.tsv b/test-A/out.tsv index 901d079..69989d2 100644 --- a/test-A/out.tsv +++ b/test-A/out.tsv @@ -1,9 +1,3557 @@ +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +P +S +S +P +S +S +S +S +P +S +S +S +S +P +P +S +S +S +S +S +P +S +P +S +S +S +P +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S P P P S S S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +P +S +S +P +S +P +S +S +S +S +S +P +S +S +P +S +S +P +S +S +P +P +S +P +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +P +P +P +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +P +S +S +S +P +S +P +P +S +P +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +S +P +S +P +S +P +S +S +S +S +P +S +P +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +P +S +S +P +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +P +S +S +S +P +S +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +P +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +P +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +P +P +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +P +S +S +P +S +S +S +P +S +S +S +P +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +P +S +P +S +P +P +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +P +P +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +P +S +S +S +S +P +P +S +P +S +S +S +P +S +S +S +S +S +S +S +P +P +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +P +S +P +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +P +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +P +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +P +S +S +P +S +S +S +S +S +P +S +P +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +P +P +S +S +S +S +S +S +S +P +S +S +P +S +P +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +P +S +P +S +S +P +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +P +S +S +S +P +S +P +S +S +S +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +P +S +P +P +S +S +S +S +S +P +P +P +S +P +S +S +S +S +P +P +S +P +S +S +S +S +S +P +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +P +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +P +S +S +S +P +S +P +S +S +S +S +P +S +P +S +S +S +S +S +P +S +S +S +P +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +P +S +P +P +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +P +S +S +S +P +S +S +S +P +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +P +S +P +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +P +P +S +P +S +S +P +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +P +S +P +S +S +S +S +S +S +P +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +P +P +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +P +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S P P P @@ -12,52 +3560,1593 @@ P S P S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S P P +S +S +S +S +S +S +S +S +S +S +S +S +S P S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +P +S +P +S +P +S +P +S +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +P +S +S +P +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +P +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +P +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S P P P S S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S P +S +S P +S +S +S +S +S +S +S +S P +S +S +S +S P +S +S +S +S +S +S +S +S +S +S +S +S P S P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S P P S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +P +S +P +S +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S P P S P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S P S S S S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +P +P +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +P +S +S +P +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +P +S +P +S +P +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S P P P P S -P -P -P -P -P +S +S +S +S +S +S +S +S +S +S +S +S +S +S S P -P -P -P -P +S +S +S +S S P S P S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +S +P +P +S +S +P +S +P +S +S +S +P +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +P +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +S +S +P +P +S +S +P +S +P +P +S +S +S +S +P +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +P +P +S +S +S +S +P +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +S +S +S +S +S +P +S +S +S +S +S +S +S +P +P +S +P +S +S +S +S +S +S +S +S +P +S +P +S +S +S +S +P +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +P +S +S +P +S +S +S +S +S +P +P +S +S +S +S +S +S