rajistics commited on
Commit
87e9481
·
1 Parent(s): 0787c8d

First push

Browse files
Files changed (5) hide show
  1. app.py +88 -0
  2. requirements.txt +127 -0
  3. topic_10000.model +3 -0
  4. topic_10000.par +0 -0
  5. topics +1 -0
app.py ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from bertopic import BERTopic
2
+ import streamlit as st
3
+ import streamlit.components.v1 as components
4
+ #from datasets import load_dataset
5
+ import pandas as pd
6
+ from datasets import load_dataset
7
+ import json
8
+
9
+ ##Load Dataset
10
+ #dataset = load_dataset("rshah/million-headlines")
11
+ #news = pd.DataFrame.from_dict(dataset["train"])
12
+ news = pd.read_parquet("/Users/rajiv.shah/Downloads/topic_10000.par")
13
+ news['date'] = pd.to_datetime(news['publish_date'], format='%Y%m%d')
14
+ timestamps = news.date.to_list()
15
+ tweets = news.headline_text.to_list()
16
+
17
+ with open("/Users/rajiv.shah/Downloads/test", "r") as fp:
18
+ topics = json.load(fp)
19
+
20
+ option_n = 5
21
+
22
+ st.set_page_config(page_title="News Topic Clustering")
23
+ st.title("News Topic Clustering")
24
+ st.caption("By Rajiv Shah")
25
+ st.caption("")
26
+ st.caption("This is a simple example of using identifying topics in the [one million ABC news headline dataset](https://huggingface.co/datasets/rshah/million-headlines). \
27
+ If you look at the code for this app, you will see how it uses just a few lines of [BertTopic](https://maartengr.github.io/BERTopic/index.html) to \
28
+ build the topics and create the visualizations")
29
+ st.caption("The preloaded existing model provides the more interesting results. However, this app can be run live by building a new model, but \
30
+ is limited to a small number of rows. I also limited topics over time to the existing model.")
31
+
32
+
33
+ form = st.sidebar.form("Main Settings")
34
+ form.header("Main Settings")
35
+ option = form.selectbox(
36
+ 'What model would you like to run',
37
+ ('Load existing model', 'Build new model'),index=0)
38
+
39
+ option_n = form.number_input(
40
+ 'What topic would you like to get terms for?',
41
+ min_value=0,max_value=10,value=5)
42
+
43
+ submitted = form.form_submit_button(label = 'Select Model')
44
+
45
+ if option == 'Load existing model':
46
+ ##Load existing model
47
+ topic_model = BERTopic.load("topic_10000.model")
48
+ #topics, _ = topic_model.transform(tweets)
49
+ else:
50
+ ##Builds Topic Model
51
+ #news_sample = news[(news['date'] > '2015-06-01')]
52
+ news_sample = news[(news['date'] > '2017-01-01') & (news['date'] < '2019-01-01') ]
53
+ news_sample = news_sample.sample(200,random_state=123)
54
+ tweets = news_sample.headline_text.to_list()
55
+ topic_model = BERTopic(min_topic_size=5, verbose=True)
56
+ topics, _ = topic_model.fit_transform(tweets)
57
+
58
+
59
+ #Get top topics
60
+ freq = topic_model.get_topic_info()
61
+ freq = freq.iloc[1: , :] ##drop -1 row
62
+ freq.head(10)
63
+ st.header("The Main Topic Clusters")
64
+ st.write(freq)
65
+
66
+
67
+ topic_nr = freq.iloc[option_n]["Topic"] # We select a frequent topic
68
+ st.caption("")
69
+ st.write('Top words in topic cluster: ',option_n)
70
+ #st.caption(option_n)
71
+ mytuple = (topic_model.get_topic(topic_nr))
72
+ for item in mytuple:
73
+ st.write(str(item[0]))
74
+
75
+ st.header("Relationships between clusters ")
76
+ st.plotly_chart(topic_model.visualize_hierarchy())
77
+
78
+
79
+ if option == 'Load existing model':
80
+ st.header("Topics over time for Existing Model")
81
+ topics_over_time = topic_model.topics_over_time(docs=tweets,
82
+ topics=topics,
83
+ timestamps=timestamps,
84
+ global_tuning=True,
85
+ evolution_tuning=True,
86
+ nr_bins=20)
87
+
88
+ st.plotly_chart(topic_model.visualize_topics_over_time(topics_over_time, top_n_topics=20))
requirements.txt ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aiohttp==3.8.1
2
+ aiosignal==1.2.0
3
+ altair==4.2.0
4
+ appnope @ file:///opt/concourse/worker/volumes/live/4f734db2-9ca8-4d8b-5b29-6ca15b4b4772/volume/appnope_1606859466979/work
5
+ argon2-cffi==21.3.0
6
+ argon2-cffi-bindings==21.2.0
7
+ async-timeout==4.0.2
8
+ asynctest==0.13.0
9
+ attrs==21.4.0
10
+ backcall @ file:///home/ktietz/src/ci/backcall_1611930011877/work
11
+ backports.zoneinfo==0.2.1
12
+ beautifulsoup4==4.11.1
13
+ bertopic==0.10.0
14
+ bleach==5.0.0
15
+ blinker==1.4
16
+ cachetools==5.1.0
17
+ certifi==2022.5.18.1
18
+ cffi==1.15.0
19
+ charset-normalizer==2.0.12
20
+ click==8.0.4
21
+ Cython==0.29.30
22
+ datasets==2.2.2
23
+ debugpy @ file:///opt/concourse/worker/volumes/live/32b11d06-4d64-4ec8-497a-cf4fc97343d2/volume/debugpy_1637091821874/work
24
+ decorator @ file:///opt/conda/conda-bld/decorator_1643638310831/work
25
+ defusedxml==0.7.1
26
+ dill==0.3.4
27
+ entrypoints @ file:///opt/concourse/worker/volumes/live/194c0a28-55ce-4e83-6a87-0d9f2e06ab2c/volume/entrypoints_1649926487944/work
28
+ fastjsonschema==2.15.3
29
+ filelock==3.7.0
30
+ frozenlist==1.3.0
31
+ fsspec==2022.5.0
32
+ gitdb==4.0.9
33
+ GitPython==3.1.27
34
+ hdbscan==0.8.28
35
+ huggingface-hub==0.6.0
36
+ idna==3.3
37
+ importlib-metadata==4.11.4
38
+ importlib-resources==5.7.1
39
+ ipykernel @ file:///opt/concourse/worker/volumes/live/c21734a4-132a-471d-7fe9-76688d5488be/volume/ipykernel_1647000841085/work/dist/ipykernel-6.9.1-py3-none-any.whl
40
+ ipython @ file:///opt/concourse/worker/volumes/live/333da4fb-3db0-439c-4a1b-ee802c44da4f/volume/ipython_1643818165055/work
41
+ ipython-genutils==0.2.0
42
+ ipywidgets==7.7.0
43
+ jedi @ file:///opt/concourse/worker/volumes/live/c9d2fa99-8bc1-4572-41e7-6beba6391441/volume/jedi_1644315238822/work
44
+ Jinja2==3.1.2
45
+ joblib==1.1.0
46
+ jsonschema==4.5.1
47
+ jupyter-client @ file:///private/var/folders/sy/f16zz6x50xz3113nwtb9bvq00000gp/T/abs_4d0a367d-74c5-447f-831e-3e1fd3984797bfrg56pj/croots/recipe/jupyter_client_1650622206454/work
48
+ jupyter-core @ file:///private/var/folders/sy/f16zz6x50xz3113nwtb9bvq00000gp/T/abs_8ba802e0-15f6-4a45-a9ee-144034526783uwxtvvew/croots/recipe/jupyter_core_1651671235924/work
49
+ jupyterlab-pygments==0.2.2
50
+ jupyterlab-widgets==1.1.0
51
+ llvmlite==0.34.0
52
+ MarkupSafe==2.1.1
53
+ matplotlib-inline @ file:///tmp/build/80754af9/matplotlib-inline_1628242447089/work
54
+ mistune==0.8.4
55
+ multidict==6.0.2
56
+ multiprocess==0.70.12.2
57
+ nbclient==0.6.3
58
+ nbconvert==6.5.0
59
+ nbformat==5.4.0
60
+ nest-asyncio @ file:///opt/concourse/worker/volumes/live/bf4e1da0-0622-4bab-4608-fdb487494886/volume/nest-asyncio_1649847922626/work
61
+ nltk==3.7
62
+ notebook==6.4.11
63
+ numba==0.51.2
64
+ numpy==1.21.6
65
+ packaging==21.3
66
+ pandas==1.3.5
67
+ pandocfilters==1.5.0
68
+ parso @ file:///opt/conda/conda-bld/parso_1641458642106/work
69
+ pexpect @ file:///tmp/build/80754af9/pexpect_1605563209008/work
70
+ pickleshare @ file:///tmp/build/80754af9/pickleshare_1606932040724/work
71
+ Pillow==9.1.1
72
+ plotly==5.8.0
73
+ prometheus-client==0.14.1
74
+ prompt-toolkit @ file:///tmp/build/80754af9/prompt-toolkit_1633440160888/work
75
+ protobuf==3.20.1
76
+ ptyprocess @ file:///tmp/build/80754af9/ptyprocess_1609355006118/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
77
+ pyarrow==8.0.0
78
+ pycparser==2.21
79
+ pydeck==0.7.1
80
+ Pygments @ file:///opt/conda/conda-bld/pygments_1644249106324/work
81
+ Pympler==1.0.1
82
+ pynndescent==0.5.7
83
+ pyparsing==3.0.9
84
+ pyrsistent==0.18.1
85
+ python-dateutil @ file:///tmp/build/80754af9/python-dateutil_1626374649649/work
86
+ pytz==2022.1
87
+ pytz-deprecation-shim==0.1.0.post0
88
+ PyYAML==5.4.1
89
+ pyzmq @ file:///opt/concourse/worker/volumes/live/7dec6841-64b1-4d95-7226-ce37c6ca8915/volume/pyzmq_1638435000749/work
90
+ regex==2022.4.24
91
+ requests==2.27.1
92
+ responses==0.18.0
93
+ scikit-learn==1.0.2
94
+ scipy==1.7.3
95
+ semver==2.13.0
96
+ Send2Trash==1.8.0
97
+ sentence-transformers==2.2.0
98
+ sentencepiece==0.1.96
99
+ six @ file:///tmp/build/80754af9/six_1644875935023/work
100
+ smmap==5.0.0
101
+ soupsieve==2.3.2.post1
102
+ streamlit==1.9.0
103
+ tenacity==8.0.1
104
+ terminado==0.15.0
105
+ threadpoolctl==3.1.0
106
+ tinycss2==1.1.1
107
+ tokenizers==0.12.1
108
+ toml==0.10.2
109
+ toolz==0.11.2
110
+ torch==1.11.0
111
+ torchvision==0.12.0
112
+ tornado @ file:///opt/concourse/worker/volumes/live/d531d395-893c-4ca1-6a5f-717b318eb08c/volume/tornado_1606942307627/work
113
+ tqdm==4.64.0
114
+ traitlets @ file:///tmp/build/80754af9/traitlets_1636710298902/work
115
+ transformers==4.19.2
116
+ typing_extensions==4.2.0
117
+ tzdata==2022.1
118
+ tzlocal==4.2
119
+ umap-learn==0.5.3
120
+ urllib3==1.26.9
121
+ validators==0.19.0
122
+ wcwidth @ file:///Users/ktietz/demo/mc3/conda-bld/wcwidth_1629357192024/work
123
+ webencodings==0.5.1
124
+ widgetsnbextension==3.6.0
125
+ xxhash==3.0.0
126
+ yarl==1.7.2
127
+ zipp==3.8.0
topic_10000.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3fcb5b76adace0d35bb26c34a74badb0fd8374e4aad30f8a2da89e8dc48e0127
3
+ size 156714218
topic_10000.par ADDED
Binary file (514 kB). View file
 
topics ADDED
@@ -0,0 +1 @@
 
 
1
+ [24, 2, -1, 16, -1, 8, 11, 1, 5, -1, -1, 25, 11, 14, 16, 3, -1, 1, -1, 16, 6, 10, 9, 0, -1, 0, 29, -1, 6, 5, -1, 6, -1, -1, -1, 4, 3, -1, 1, -1, 3, 4, -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, -1, -1, 0, 10, -1, 7, -1, 1, 5, 19, 2, -1, 2, -1, 0, 8, 1, 1, -1, 0, 3, -1, -1, 8, 10, -1, -1, -1, 1, 1, 0, 2, -1, 7, 1, 9, 0, -1, 6, 2, 8, -1, 12, -1, 0, -1, -1, -1, 2, 19, 1, 0, 0, -1, 8, 1, -1, 0, -1, 0, 0, 8, -1, 7, 0, -1, -1, 30, 10, -1, -1, -1, 10, -1, 20, -1, 0, 1, 1, 2, 8, -1, 0, -1, 2, 10, -1, -1, -1, 14, 0, -1, 11, -1, 0, 5, 3, -1, 2, 7, 12, -1, -1, 7, 29, 0, 19, 28, 0, 0, 0, -1, 0, 1, 1, 11, -1, 24, 0, 24, 27, 10, 9, 13, -1, 0, -1, 3, 0, -1, 1, 1, -1, -1, 0, -1, -1, 0, 0, -1, -1, 7, -1, 15, 0, 16, 29, 2, 0, -1, 20, 1, -1, 0, 1, -1, 11, -1, 0, 8, -1, 0, 4, -1, 20, 0, 2, -1, -1, 0, -1, -1, -1, 0, -1, 0, 26, -1, 25, -1, 5, 23, 5, -1, 5, -1, -1, -1, 3, 12, -1, -1, 20, 0, -1, -1, -1, 2, -1, -1, 1, 1, -1, 2, -1, -1, 11, 28, 15, 9, 6, 10, -1, 0, 0, -1, 8, 21, -1, -1, 1, 6, 6, 5, -1, 7, 8, -1, 11, -1, 5, -1, -1, -1, 0, -1, 5, 16, 11, 0, 29, 13, -1, -1, 8, 4, 2, 0, 0, 0, -1, 0, 7, 7, 0, 1, 0, -1, 6, -1, 14, -1, 5, 2, 7, -1, -1, 5, -1, 9, -1, -1, 8, -1, -1, 17, 5, -1, 1, 1, -1, 15, -1, -1, 1, -1, -1, 0, 3, 13, 8, -1, -1, 14, 0, 13, 1, 3, 0, 12, -1, -1, -1, -1, 2, -1, 2, -1, 1, -1, -1, -1, 1, 7, 0, -1, 0, 1, 4, 9, 22, -1, -1, 0, 24, -1, -1, -1, 26, 5, 0, -1, -1, 0, -1, 1, 12, -1, -1, 31, 0, 0, -1, 0, 16, -1, -1, -1, 0, -1, 4, 1, 1, 8, 0, -1, -1, -1, 0, 7, -1, -1, 18, -1, 5, 6, 1, -1, 9, 1, -1, -1, 7, 0, -1, -1, 9, -1, -1, -1, 7, -1, 0, -1, 17, 0, -1, 23, -1, 0, 22, 0, -1, -1, 5, 1, 1, 29, -1, 0, 2, 20, 0, 2, -1, 0, 4, -1, 1, -1, -1, -1, -1, 0, 0, 0, -1, 21, -1, 2, -1, 11, 0, 24, 9, 2, -1, 1, -1, 9, -1, -1, 1, -1, -1, 9, -1, -1, 0, 26, -1, 1, -1, -1, -1, 6, -1, 2, 0, 5, 1, -1, -1, -1, 14, -1, -1, 13, 0, 0, 10, 0, -1, -1, -1, -1, 4, 1, 9, 9, 0, 17, 26, -1, 4, -1, -1, -1, 8, 0, 25, 1, 31, 1, 10, 17, -1, 0, -1, 17, 1, -1, -1, 2, 0, -1, 10, 15, 0, -1, 0, 0, 8, 15, 8, -1, 11, 6, 0, 10, 28, -1, -1, 7, 13, 1, -1, 0, 3, 18, 0, -1, 3, -1, 20, 12, 11, -1, 0, 20, -1, 17, 2, 5, -1, -1, -1, 10, 12, -1, 4, 31, -1, 1, 6, 11, 9, 31, 14, 9, -1, 5, -1, 22, 24, -1, 4, 1, 0, 1, 0, 19, 27, -1, 4, 11, 1, 17, -1, 22, 0, 2, 17, 1, 0, -1, -1, 0, 0, -1, 3, 5, -1, 22, 2, -1, -1, 9, 3, 11, -1, -1, -1, 0, 11, 3, 1, -1, 6, 6, -1, -1, -1, 17, 0, 0, -1, 6, 7, -1, 14, -1, 3, 0, 18, 25, -1, 0, 16, -1, 0, -1, -1, -1, 23, 2, -1, -1, -1, -1, -1, 28, 12, 7, 0, 18, 13, 5, 13, -1, -1, 12, 1, 0, -1, -1, -1, 1, 1, -1, 14, 21, 0, 23, 24, 7, 18, 11, -1, 1, 0, -1, -1, 7, -1, 0, 6, 2, -1, -1, -1, -1, 8, 0, 4, 9, 24, 24, 1, -1, -1, 1, 0, 31, -1, -1, -1, -1, -1, 1, -1, 1, 4, 8, 3, 22, -1, -1, 16, 28, 5, -1, -1, -1, 7, 8, -1, 1, 0, -1, -1, 0, 11, 21, 18, -1, 4, 12, -1, -1, -1, -1, 17, 0, 14, -1, -1, 6, 11, -1, 0, 0, -1, 7, 24, 0, 5, 5, -1, 0, -1, -1, 5, 11, -1, 0, 10, 7, 0, -1, 0, 7, -1, -1, -1, -1, 24, 5, -1, 20, -1, -1, -1, 3, 9, 0, 0, 21, -1, -1, -1, 0, -1, 6, 5, 0, 5, 1, -1, 1, 9, 1, 22, 1, 26, 0, 0, -1, 1, -1, 12, 0, 0, -1, 16, -1, 12, 0, -1, 15, 27, 0, -1, 5, 3, -1, -1, -1, -1, 1, -1, 9, 23, 1, 16, 1, 22, 6, 1, -1, -1, 15, -1, 5, -1, 17, -1, 4, 6, -1, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, -1, 1, 8, -1, -1, -1, -1, -1, 9, 0, -1, 0, 6, -1, -1, 10, -1, 26, 0, 1, -1, 11, 12, 18, -1, 6, 23, -1, -1, 10, 2, 1, -1, 1, -1, -1, 5, 2, 4, 5, 4, 0, -1, 0, -1, -1, 9, 5, -1, 4, 0, -1, -1, -1, -1, -1, -1, 6, 9, -1, -1, 7, 8, 2, -1, 2, -1, 16, 1, 26, -1, 20, 3, -1, 15, 0, 9, 0, 8, -1, -1, 17, 1, 1, 7, -1, 0, 7, 4, 7, 1, 0, 28, 0, 3, 0, 10, -1, 0, -1, -1, 13, 0, -1, -1, -1, 9, -1, -1, -1, 0, 29, 10, 18, -1, 0, 0, -1, 12, 21, 19, 5, 7, 0, -1, -1, -1, -1, -1, 3, -1, -1, 0, 10, 6, 2, 0, -1, 3, 1, -1, -1, 14, 4, 20, 18, 8, -1, -1, 13, -1, -1, 0, -1, 0, 2, 2, 11, 4, -1, -1, 0, -1, -1, 10, -1, 0, 5, 16, 11, 1, 21, -1, 16, 10, 28, -1, 7, 15, 16, -1, -1, -1, 5, 9, -1, 27, 0, -1, -1, 28, -1, 4, -1, 15, 6, 8, 7, 8, -1, 11, 3, -1, 4, 0, -1, 2, 10, 0, 3, 0, -1, 1, -1, 4, 9, 14, 0, -1, 11, -1, 0, -1, 10, -1, 12, 0, 2, 7, 0, 14, 8, 5, 0, 24, -1, -1, 11, 19, 1, -1, 27, 23, 5, 8, -1, 7, 5, 0, -1, 6, 6, -1, 0, -1, 10, -1, -1, 9, 14, 29, -1, 19, -1, 7, 13, 16, 0, -1, 22, 24, 29, -1, 6, -1, 25, -1, -1, 29, 23, 6, 22, 30, 0, 0, -1, 2, -1, -1, 20, -1, 18, 0, 8, 0, -1, 8, -1, 6, -1, 1, 0, -1, -1, 9, 10, -1, 0, -1, 5, 6, 28, 0, 23, -1, -1, 8, 16, -1, 0, 0, 11, -1, 2, 1, 0, -1, -1, -1, -1, -1, -1, -1, 18, 3, 0, -1, -1, 9, -1, 5, 1, 0, 14, -1, -1, 0, 0, -1, -1, 12, 0, -1, 10, 6, 17, 20, 9, 28, -1, 11, 17, -1, 2, 11, -1, 6, 17, -1, -1, 3, 17, -1, 0, -1, 12, 0, -1, -1, -1, 26, 0, -1, -1, 6, 14, 0, 13, -1, 3, -1, 5, -1, 2, 5, 7, 7, 3, 17, -1, -1, 30, 2, -1, -1, 1, 4, 31, 4, -1, 16, 18, 6, 5, 2, 5, 7, -1, 4, -1, 6, 22, 0, -1, 21, 4, 2, 0, 1, 13, -1, 0, 13, 23, 0, -1, 5, -1, 4, 1, -1, 1, -1, 3, 10, -1, -1, -1, 1, 0, -1, 31, 8, -1, -1, 9, 0, -1, -1, 8, -1, -1, -1, 9, 26, 0, 4, -1, 1, 1, -1, 23, 1, -1, 0, -1, -1, -1, 1, 4, -1, -1, 2, 0, 16, -1, -1, 0, -1, 2, 0, 0, 25, -1, -1, -1, 1, 13, -1, 26, -1, 0, -1, 6, -1, -1, -1, 2, 2, 10, 31, -1, 22, -1, 5, -1, 15, -1, 1, 0, -1, -1, 0, 24, 4, 14, 24, 13, 26, 18, 6, -1, -1, -1, -1, -1, 10, 0, 24, 2, -1, 0, 0, -1, 1, -1, -1, -1, 0, 4, 12, -1, 29, -1, -1, 14, 3, 0, 4, 5, 0, 13, -1, 1, -1, 9, 0, 20, 6, 1, 0, -1, 0, -1, -1, 9, 20, -1, 29, 1, 2, -1, 2, 1, -1, 5, 3, 2, -1, 2, 0, 3, 0, 12, -1, 30, 5, -1, 0, 6, -1, 4, -1, 0, 2, 0, 11, -1, 5, -1, 0, 0, -1, -1, 6, 1, 0, 11, -1, -1, 0, 1, -1, -1, -1, 16, -1, -1, -1, 25, -1, 7, 18, -1, 22, -1, -1, 9, 1, 3, -1, -1, 3, -1, 8, 0, 13, 3, 6, 0, 26, 0, -1, -1, -1, 21, -1, 0, -1, 0, 8, 18, 0, 29, 0, -1, -1, 4, 1, -1, 0, 11, 2, -1, 2, 2, 21, 0, -1, -1, 12, -1, 5, -1, 3, -1, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, 22, 28, 4, 22, 0, 21, -1, -1, 15, -1, 0, 19, -1, 0, 12, 4, 9, 11, 3, 1, 20, -1, -1, 4, 6, -1, -1, -1, 14, 27, -1, 18, -1, -1, 0, 6, -1, 18, -1, -1, -1, 0, 2, -1, 6, -1, -1, 30, 11, -1, -1, -1, 8, -1, 0, 4, -1, 0, -1, -1, -1, -1, 1, -1, 2, -1, -1, -1, 6, -1, -1, 20, -1, 13, 10, -1, -1, -1, -1, -1, 20, -1, 2, 12, 3, 4, 1, 7, -1, 17, 0, 1, 30, 0, 16, -1, -1, 23, 0, -1, -1, -1, -1, 1, 3, 0, 3, -1, 0, -1, -1, -1, 17, 1, 12, 16, 0, -1, 1, 5, -1, 8, 3, -1, -1, -1, -1, 4, 13, -1, -1, 10, -1, 0, 0, -1, 0, 11, 6, 9, 2, 4, 3, 22, 17, 12, -1, 15, -1, 8, 18, 0, -1, -1, 19, 3, -1, -1, 19, 0, 20, 0, -1, 19, 4, -1, 12, -1, -1, -1, 7, -1, -1, 2, 9, 4, 0, 0, -1, -1, 8, 9, -1, -1, -1, 3, -1, 2, 28, -1, -1, 9, 15, 13, 7, 0, 2, 8, 3, 3, -1, -1, 7, 24, 3, 0, -1, 6, -1, 15, 2, -1, 0, -1, 0, -1, 4, -1, 16, 10, 1, 15, -1, 10, -1, 0, -1, 8, -1, 1, 16, -1, -1, 0, -1, -1, 1, 5, 2, -1, 0, -1, 26, 4, 0, 2, -1, 13, 24, 27, 9, -1, 7, -1, 9, 0, 0, 1, -1, 10, -1, 2, 4, 4, 2, 5, 0, 12, -1, 8, 6, 6, 15, -1, -1, 6, -1, 0, 8, 9, 11, 22, 7, 0, 2, 0, -1, 3, -1, 24, 2, 0, 10, -1, 4, -1, 3, 8, 14, 17, 1, -1, -1, 8, 6, 0, -1, 0, -1, 14, -1, -1, -1, 6, 0, -1, 5, -1, 0, 13, 31, -1, 15, 0, -1, -1, -1, -1, -1, 0, 0, -1, 4, -1, 14, -1, -1, 0, -1, 6, -1, -1, 6, 10, -1, 14, -1, -1, 7, 5, 4, -1, -1, -1, 2, -1, -1, 0, -1, -1, -1, -1, -1, 0, -1, -1, 2, 4, -1, -1, -1, 5, 19, 4, -1, -1, -1, -1, -1, 6, 1, -1, -1, -1, -1, 29, -1, 2, 0, -1, -1, 7, 10, -1, 18, 2, -1, -1, -1, 0, 0, 0, -1, -1, 18, -1, -1, 0, 15, 3, 5, 13, 0, 10, 11, 21, 26, -1, 1, -1, 20, 0, -1, 6, 0, -1, 16, -1, 9, -1, -1, 3, 26, 2, -1, 6, -1, 9, 5, -1, -1, -1, 22, -1, -1, 5, 13, 3, 5, 6, -1, 8, 24, 0, 30, 29, 0, -1, 13, 0, -1, -1, -1, 0, 25, -1, 14, 9, 3, 7, 5, 1, 14, 12, 31, 7, 4, 16, -1, 29, -1, -1, -1, 2, 0, 1, 23, 31, 30, 24, -1, 4, 5, 0, 13, 0, 23, 15, 27, -1, -1, -1, 10, -1, 14, -1, 2, 1, -1, -1, 22, 6, 12, -1, -1, -1, 0, -1, 1, 1, -1, 6, 8, 2, 20, -1, -1, -1, -1, -1, -1, 14, 7, 2, -1, -1, 1, 11, -1, -1, 1, 13, -1, -1, 15, 0, 0, -1, 5, 26, 28, 6, -1, -1, -1, 6, 0, -1, -1, 8, -1, -1, 1, 9, 11, -1, 28, 0, 6, -1, 0, 2, 10, -1, 2, -1, 9, 0, -1, 8, 31, 3, -1, 9, 18, 1, 8, 0, 4, -1, 0, 0, 0, -1, 28, 13, 10, -1, 2, 0, 1, -1, 20, 28, 0, -1, -1, -1, 0, 5, 21, -1, 5, 10, 10, -1, 10, -1, 7, 0, 19, 20, 3, 0, -1, 2, 0, -1, -1, -1, 2, 1, 2, 1, 21, 4, -1, -1, -1, -1, -1, 25, -1, -1, 5, 14, 2, 0, 0, 0, 0, -1, 4, 15, -1, 0, 8, -1, 0, -1, 0, 0, 2, -1, 0, 10, -1, -1, 21, 0, -1, -1, -1, 13, -1, 18, 9, 3, 2, 11, 19, 9, -1, -1, -1, -1, 7, 23, -1, 4, -1, 13, 1, 29, -1, 3, -1, -1, -1, 2, -1, 9, 0, -1, 0, -1, -1, -1, 5, 23, 17, 3, 6, -1, 1, -1, -1, 0, -1, 0, 12, 0, 0, 2, 6, 2, 6, -1, 11, 9, 0, 27, 2, -1, -1, -1, 5, -1, 0, -1, 6, 8, 1, 4, 5, 5, -1, 20, -1, 3, -1, -1, -1, 0, -1, 0, -1, 6, 0, 0, -1, 3, -1, 7, -1, 9, -1, 9, 0, 21, 4, -1, -1, 6, 3, -1, -1, -1, -1, -1, -1, -1, -1, 0, 14, 4, 6, 4, 6, 3, -1, 8, -1, -1, -1, 7, 7, 6, 1, -1, 3, -1, 0, 1, 0, 3, 9, 4, -1, 0, -1, 0, 8, 7, -1, 23, -1, 9, 5, 14, 1, 17, -1, 4, -1, 4, 2, 23, 0, 5, 2, 14, 0, 3, 0, 12, -1, -1, 2, 2, -1, 2, -1, -1, -1, 11, 2, 0, 1, -1, 1, -1, 11, -1, -1, -1, -1, -1, -1, -1, 4, 14, -1, 1, 0, -1, 0, 3, -1, -1, 3, 3, -1, -1, 26, 4, 9, 2, 3, -1, -1, 14, 0, -1, 25, 4, 0, 18, 0, -1, 0, 16, -1, -1, 0, 5, 1, -1, -1, 14, 0, -1, -1, 9, 5, 0, -1, 1, 0, 16, 9, -1, -1, -1, -1, -1, -1, -1, 12, 8, 3, 2, 1, -1, -1, -1, 15, -1, -1, -1, 11, 7, -1, 12, 9, 5, 2, 13, 25, 2, -1, -1, 5, -1, 2, 20, 0, 4, 1, 7, 1, -1, -1, 1, 29, 0, 0, -1, -1, 16, 27, 0, 10, 17, 0, -1, 12, 0, -1, 18, -1, -1, 0, 9, 7, -1, 1, 16, 13, -1, 0, 11, 27, 0, 0, 5, 0, -1, -1, -1, 2, 0, 1, 0, 0, 7, 0, 0, -1, 30, 1, -1, 0, -1, -1, -1, 23, 3, -1, 6, 7, 17, -1, -1, 6, -1, -1, 5, 0, 2, 1, -1, -1, 4, -1, 4, 8, 0, 7, 8, -1, 11, 4, 0, 2, 12, -1, -1, 6, -1, -1, 0, -1, -1, -1, -1, 0, 9, 10, 0, 9, 0, 29, -1, -1, 3, 4, 0, 7, -1, 0, 1, 2, 0, 0, 0, 0, 0, -1, 12, 11, 14, 6, 0, 1, -1, -1, 15, 11, -1, 4, -1, -1, -1, -1, 31, -1, 22, 15, -1, 3, -1, -1, 25, 17, 8, -1, -1, 5, -1, -1, 2, -1, 25, -1, 18, 0, -1, 28, -1, 14, 12, 0, -1, -1, 1, 0, 25, 2, -1, -1, -1, 9, 4, -1, -1, -1, 9, -1, 5, 12, 1, -1, -1, -1, -1, -1, -1, 14, -1, 0, 0, 0, 9, 2, -1, -1, -1, -1, -1, 15, 0, 0, 0, -1, -1, 3, -1, -1, 0, 23, -1, -1, 2, 7, 3, 4, -1, 26, -1, 8, 12, 1, 4, -1, -1, 12, 10, -1, 7, 18, 6, 7, -1, 11, 12, 0, 0, 6, -1, 7, -1, -1, 3, 0, -1, -1, 0, -1, -1, 4, 10, 0, -1, -1, 4, 3, 23, 13, -1, 0, -1, -1, 0, 0, 20, 0, -1, -1, -1, 3, 28, 7, -1, 28, -1, 5, 2, 9, 0, 2, 27, -1, -1, -1, 18, 0, 0, 9, -1, 2, -1, -1, -1, -1, -1, 6, 0, 10, 0, -1, 4, 24, -1, -1, 3, -1, 1, -1, -1, -1, 0, 7, -1, 0, 24, -1, 0, -1, 1, -1, 7, -1, 10, 4, -1, 0, 25, 0, 0, 4, -1, 28, 3, -1, -1, -1, -1, 0, 9, -1, -1, 31, 0, 25, 9, 19, 13, 1, 8, 3, 8, 5, -1, 10, 5, 7, -1, -1, 16, 2, 12, -1, -1, 1, 6, -1, 6, 2, -1, -1, 0, 5, -1, 0, 0, 6, 0, 9, 13, 21, 3, 2, 6, -1, -1, 0, 3, 11, 8, -1, -1, 12, -1, -1, 9, -1, 31, -1, 2, 0, -1, -1, -1, -1, -1, -1, 8, -1, 7, 0, 30, -1, -1, -1, 2, -1, -1, -1, -1, 26, 3, -1, 1, -1, -1, -1, -1, 6, -1, -1, 5, -1, -1, 0, 0, 6, -1, -1, 18, -1, 2, -1, -1, -1, -1, -1, 6, -1, 10, 10, 0, 5, 0, 26, 18, -1, 0, 10, 0, 6, -1, 1, -1, 26, -1, -1, -1, 1, 0, 3, -1, -1, 3, -1, 12, 1, 12, -1, 5, 0, 10, 17, -1, -1, -1, -1, -1, -1, 2, 19, -1, -1, 21, 3, -1, 2, 5, -1, 25, 16, 16, 2, -1, -1, 10, 3, 12, 0, -1, 14, 0, 16, 1, 26, -1, 4, 7, 0, 2, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, 21, 0, -1, 0, 4, -1, -1, 16, -1, -1, -1, -1, 1, 0, -1, 0, 8, 2, 4, -1, 1, -1, 0, 18, 6, 0, -1, -1, 11, -1, 3, 7, 27, 0, 0, 3, -1, -1, -1, 16, 7, 1, -1, 2, -1, -1, 3, 27, 4, 23, 10, 9, -1, 0, 12, 0, 27, 8, 0, -1, -1, 10, 6, 1, -1, 29, -1, -1, 1, 4, 15, 1, -1, 10, 2, 8, 30, 2, 0, 25, -1, 1, 0, -1, 25, 12, 0, 3, -1, -1, 1, 16, 7, 18, 2, -1, -1, 12, 0, 3, 6, 12, -1, -1, 0, 5, 16, -1, 1, -1, -1, 13, -1, 22, 20, 6, 5, 12, 5, -1, 29, 0, 2, -1, 0, -1, -1, -1, 30, -1, -1, 0, 2, -1, 0, -1, 5, 12, 2, 1, 0, 17, -1, 3, -1, -1, -1, -1, 1, -1, 0, 0, -1, -1, 1, -1, 5, 24, -1, -1, -1, 7, 0, 9, 0, 1, 8, 3, -1, 1, -1, 3, -1, 19, -1, -1, -1, -1, 9, -1, -1, 0, 27, 0, -1, 9, 15, -1, -1, 2, 3, 0, 5, -1, -1, -1, -1, 0, 4, 27, 0, 0, -1, -1, 4, 21, 2, 0, -1, 1, -1, 22, 19, 4, 0, -1, 0, -1, -1, 7, -1, 14, 2, -1, -1, 27, -1, -1, 7, 10, 17, 0, -1, 0, 4, -1, 4, -1, 11, 1, 2, -1, 0, -1, 27, -1, 3, 7, 9, -1, 0, 0, -1, 8, 5, 5, 21, -1, 2, -1, 0, -1, 2, -1, 4, -1, 4, -1, -1, 23, -1, -1, 6, -1, -1, -1, -1, 1, -1, 3, 31, -1, 9, -1, -1, -1, -1, 2, 0, 0, 0, 10, 19, 5, 6, -1, -1, 9, -1, 2, -1, 23, -1, -1, 28, 1, 3, 4, -1, 5, -1, 1, 0, 11, -1, 1, -1, 9, 10, -1, -1, -1, 21, -1, 26, 0, 0, 0, 0, -1, -1, -1, 9, 4, 0, -1, -1, -1, 1, 11, 1, -1, 0, 7, 0, 9, 1, 30, -1, 15, 15, -1, 29, 0, 17, 3, -1, -1, 0, 9, 4, 20, 3, 24, 5, 4, -1, 0, 17, 0, 3, -1, 15, -1, 0, 13, 3, -1, 1, -1, 5, 4, 0, 2, 6, 3, -1, -1, -1, 0, -1, 25, 0, -1, 6, 0, 0, 9, 3, -1, 1, 0, 6, 5, 0, 0, -1, 5, 0, 4, -1, -1, 0, 2, 9, -1, -1, -1, 6, 18, 1, 12, 6, 0, 16, -1, -1, -1, 2, 25, -1, -1, -1, -1, 1, -1, 20, -1, 3, 28, -1, 1, -1, -1, -1, 0, 8, 0, -1, 0, 2, 1, 11, -1, -1, -1, 3, -1, -1, 22, -1, -1, -1, -1, 1, 1, 12, -1, -1, -1, -1, -1, 9, -1, 5, 2, -1, -1, -1, 6, 7, -1, 1, 10, -1, 1, 2, 0, 0, 23, 2, 30, -1, -1, -1, 27, -1, 3, 3, -1, 0, 25, -1, 4, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, 7, -1, 6, 4, -1, 9, 13, 21, 2, 0, 3, 30, 8, -1, 11, 12, 9, 14, 21, 0, 23, -1, 4, 6, -1, 1, 1, 0, 1, 10, 7, 3, 11, 26, 8, 12, 0, -1, -1, 0, 0, -1, 0, 2, 2, 0, 0, -1, 12, -1, 1, 15, -1, 29, 2, 2, 5, 0, 6, 12, 0, 30, -1, 0, -1, 3, 1, -1, 8, 7, 9, 0, 0, 0, 0, 2, -1, 5, 26, 0, 9, -1, 5, 2, 22, 0, 5, -1, 0, 2, 8, 4, 1, 0, 4, -1, 31, -1, 1, -1, 0, 6, 4, 1, 3, -1, -1, 2, -1, -1, 6, 9, 7, 2, 0, -1, -1, 4, -1, 9, 10, 28, -1, 6, 1, 13, -1, 3, 15, 13, -1, 0, -1, 2, 22, 4, 8, 4, 11, 13, -1, 19, -1, 0, -1, 6, 19, -1, -1, -1, 4, 30, 3, -1, 13, 0, -1, 0, 6, -1, 4, -1, -1, 0, 9, 22, -1, 8, 2, -1, 1, 1, 1, -1, -1, 13, -1, 0, -1, 16, 1, 0, 13, 6, 1, -1, -1, 14, -1, 4, 15, -1, -1, -1, 29, -1, 0, 6, 0, 0, -1, -1, 1, 3, 0, 20, -1, 1, 1, 1, 19, -1, 0, 30, 4, 0, -1, -1, 0, -1, 28, 5, 3, 5, -1, 2, -1, -1, -1, -1, 19, 17, 9, -1, 4, 8, 1, -1, -1, -1, 6, -1, 5, -1, 23, -1, 1, 9, 28, 0, 0, 0, -1, -1, 2, -1, -1, 17, -1, -1, 16, 0, 0, -1, 5, 5, -1, 19, 8, 2, 6, 5, 3, 6, -1, -1, 4, 3, -1, 19, 3, -1, -1, -1, 24, 2, 0, 1, 0, 0, 0, -1, 7, 10, -1, -1, 21, -1, 0, 0, -1, -1, -1, 5, 3, 11, 0, 7, -1, 21, 5, -1, 1, 0, 8, -1, 0, 4, 2, 2, -1, -1, 15, 1, -1, 3, 4, -1, 3, 1, -1, 0, 0, -1, -1, 0, 4, 12, 14, 0, 8, 0, 3, 2, 6, -1, -1, -1, 0, 0, 0, 25, -1, 24, -1, -1, 4, -1, -1, 5, 9, -1, 0, 0, 0, 0, 6, 15, 13, 0, -1, -1, -1, -1, -1, 10, 5, 0, 11, 1, 1, 3, 6, -1, -1, -1, -1, 1, -1, 9, 8, -1, 14, 5, -1, 15, -1, -1, -1, 9, 7, 9, -1, -1, -1, 8, -1, -1, -1, 1, -1, 10, -1, -1, 2, 3, 0, -1, -1, -1, 10, 23, -1, 2, 1, -1, 7, 29, 10, 0, -1, 6, 4, 26, 10, 15, -1, 0, -1, 13, 0, -1, 0, 24, 5, -1, -1, 1, 0, 4, 8, -1, -1, -1, 9, 0, 0, 3, 6, 2, 4, 7, -1, 7, -1, 5, 1, -1, 7, -1, 16, -1, 0, 1, 13, -1, 0, 10, 1, 10, 7, 0, 12, -1, 16, 0, 6, 22, 0, 5, 9, 8, 11, 0, -1, 3, 2, 3, -1, 22, 3, 11, -1, 7, 9, 0, 0, -1, -1, 8, -1, -1, 0, 16, 0, 5, 15, -1, -1, -1, -1, -1, -1, 0, -1, 3, -1, 12, 2, 23, 13, -1, 4, 0, 29, 31, 4, -1, 7, 17, -1, 20, 5, 1, -1, -1, 10, -1, 0, 20, -1, 4, 7, 22, 10, 7, -1, -1, -1, 0, 21, 28, -1, 4, 20, 2, 8, -1, -1, 1, -1, -1, 15, -1, 1, 31, -1, 25, 3, 10, 15, -1, 24, 3, -1, 2, 3, 13, 3, -1, 1, -1, 6, -1, 9, 15, 5, -1, 1, -1, 7, 1, 8, 0, 0, -1, 7, 27, 2, 0, 0, -1, 0, 0, -1, 2, 0, -1, -1, 2, 2, 15, -1, -1, 8, -1, 1, -1, -1, 2, 17, 1, -1, 0, -1, 15, 0, 0, 0, -1, 5, 1, -1, -1, 11, 12, 3, 0, 9, 13, 2, 0, -1, -1, 1, -1, 5, -1, 8, 2, 4, 16, -1, 1, 6, 11, 3, 1, -1, 0, 21, -1, 5, -1, 5, -1, 3, -1, -1, 31, -1, 0, 4, 0, -1, 10, -1, 1, -1, 5, 2, 4, 9, 15, 28, 6, 11, 1, 0, -1, 1, 0, 0, -1, -1, 0, -1, 7, -1, 17, 21, -1, 0, -1, -1, 0, 3, 27, 0, -1, -1, -1, 8, 5, 14, 0, 3, 2, -1, 7, -1, -1, 4, 25, -1, 22, 10, -1, 0, 2, 0, 0, 18, 8, 0, 1, 4, 5, -1, 1, -1, 22, 5, 5, -1, 5, -1, 18, 6, 11, 0, 5, 19, 21, 9, 14, 2, 7, 19, 21, -1, -1, -1, -1, 19, 14, -1, 6, 0, 26, -1, -1, -1, -1, -1, -1, 16, -1, 16, -1, -1, 0, 0, -1, 17, -1, 4, -1, 21, -1, 18, 0, 6, -1, 18, -1, -1, -1, 7, -1, 8, -1, -1, -1, -1, 6, 0, 9, 17, -1, 12, 12, 11, 0, 0, -1, 1, 0, -1, -1, -1, -1, -1, -1, 0, 14, 4, 0, -1, 0, -1, 0, 5, 0, 21, 4, 3, -1, -1, 1, -1, 0, 2, 0, 1, 4, -1, 1, 12, -1, 0, -1, 11, 5, 29, 0, 0, 6, 10, 21, 7, -1, 11, -1, -1, -1, -1, -1, 16, -1, 11, -1, -1, 5, 6, 9, 1, 4, 5, 16, 18, 9, 0, 21, -1, -1, -1, -1, -1, -1, 0, -1, -1, 24, -1, -1, 0, 9, 2, -1, -1, -1, 7, 2, 8, -1, -1, -1, 1, -1, 7, 4, 4, -1, 0, -1, -1, -1, -1, 0, 0, 21, -1, -1, -1, 0, -1, 4, 0, 2, 8, 15, 6, -1, 5, -1, -1, 1, -1, 1, 16, 13, -1, 0, 12, 24, -1, 6, 23, -1, 4, 9, 5, 22, -1, 0, 14, 5, -1, 1, 7, -1, 2, 0, 0, 17, 7, 16, 0, 2, -1, 7, 14, -1, -1, 21, -1, 1, 1, 0, 3, 11, 4, 13, 0, 26, 0, 11, 2, -1, -1, -1, 0, 6, 1, 18, 5, -1, 2, -1, 11, -1, 6, -1, -1, 13, 0, 2, -1, -1, 23, 0, 6, 23, 11, 26, -1, 28, 13, -1, -1, 20, 16, 21, -1, 10, -1, -1, -1, 4, 5, 10, 2, 14, -1, 4, 8, -1, 19, 0, 10, 7, 0, -1, -1, -1, 0, 1, -1, -1, 0, -1, 8, 6, -1, 7, 9, -1, 1, 16, 3, -1, 12, 29, 0, 0, 4, -1, 0, 4, 0, -1, 28, -1, 10, 1, 0, 1, -1, -1, 0, 16, -1, 1, 0, -1, 20, 0, 3, 1, 15, 1, 17, 22, -1, 10, -1, 0, -1, 12, -1, 20, 6, 0, -1, 7, 19, -1, 5, 4, 0, -1, -1, -1, 0, -1, -1, 21, -1, -1, 1, 1, -1, -1, 4, -1, -1, 0, 14, 0, 30, -1, 17, -1, 6, 0, 23, 7, -1, -1, 3, 4, 0, 0, 11, 5, -1, 21, 0, -1, 9, -1, 0, -1, -1, 1, 4, -1, -1, 9, 0, 25, 0, 8, 2, 1, 3, 19, 0, 24, -1, -1, 4, 0, 1, 2, 23, 31, 18, 2, -1, 7, -1, 17, -1, 15, -1, 0, 1, 5, 7, -1, 4, 0, -1, -1, -1, -1, 7, -1, -1, 4, -1, -1, 4, -1, 21, -1, 25, -1, 10, 1, -1, -1, 0, -1, 14, 0, -1, 14, 1, 1, 12, 29, 0, 0, 0, -1, 0, 18, 0, 7, 24, 9, -1, 6, 0, 1, -1, -1, 8, -1, 1, 14, 31, -1, 0, 25, 24, 1, 21, -1, -1, -1, 8, -1, 11, 3, 3, -1, -1, -1, -1, -1, -1, 30, 0, 10, 12, 6, -1, 2, -1, 15, 29, 0, 1, 10, 0, 11, -1, 0, 2, 10, -1, 0, 0, 2, 1, 9, 1, 0, 0, 14, -1, -1, 4, 4, -1, -1, -1, -1, 6, 5, 0, -1, -1, 3, -1, -1, 3, 15, 0, -1, 0, -1, -1, -1, 4, 20, -1, -1, 1, -1, 9, -1, -1, -1, -1, 21, 25, 9, 0, 13, -1, 10, -1, 7, -1, -1, 13, 7, 4, 4, -1, -1, 7, -1, -1, -1, 29, -1, 10, -1, 4, 6, -1, -1, -1, -1, -1, 0, 8, 11, 8, -1, -1, -1, -1, 0, 5, 1, -1, -1, -1, 0, -1, 3, -1, 0, 7, 0, 7, -1, -1, 5, 2, 1, -1, -1, -1, -1, 23, 27, 2, -1, -1, -1, 4, -1, 7, 0, 0, 0, -1, 0, 3, -1, -1, -1, 4, 4, 9, -1, 11, -1, 0, -1, -1, 11, -1, 0, -1, -1, 7, 13, 19, 8, 1, 4, 23, 24, 0, 2, 20, -1, 9, -1, 12, 2, -1, -1, 8, 0, 2, 13, -1, 0, -1, -1, 12, 2, 1, -1, -1, 11, 9, 25, -1, -1, 5, 1, -1, 0, 6, 19, 4, 5, 0, 0, 6, -1, 0, 26, -1, 2, -1, 0, 31, -1, 0, 0, 12, 16, -1, -1, 1, -1, 9, 3, -1, 0, 0, -1, -1, -1, -1, -1, 5, 1, 3, 16, -1, 25, -1, 0, 11, -1, -1, -1, 8, -1, 2, 3, 7, 0, -1, 5, 2, 16, 4, -1, -1, 0, 0, -1, -1, 10, 6, 20, 11, -1, 2, 0, 13, -1, 21, -1, 20, 0, 2, 4, 0, 3, 6, 0, 8, 0, 5, 5, 14, 5, -1, 0, 5, -1, 25, -1, 5, -1, -1, 9, 0, -1, -1, 2, -1, 17, -1, 7, 2, 6, -1, -1, 6, -1, 0, -1, 2, 1, -1, 1, 3, -1, 6, 22, -1, -1, -1, 2, 4, 3, -1, 0, -1, 4, 9, 2, 7, -1, 9, -1, 0, -1, -1, -1, -1, 18, 4, -1, 1, 0, -1, 1, -1, 29, 12, -1, 11, -1, -1, 14, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 7, 12, -1, -1, 14, -1, 2, -1, 1, -1, -1, 19, 22, 13, 28, 1, 1, -1, 0, -1, -1, 16, -1, 23, -1, -1, 10, 0, 0, 12, 25, -1, 10, 1, 7, 0, -1, -1, 16, 26, -1, -1, 0, 14, -1, -1, -1, 29, 0, 16, 7, 2, 2, -1, -1, 0, -1, 0, 2, -1, 26, 2, 7, -1, -1, 12, -1, 0, 0, 0, -1, -1, 0, 5, -1, -1, -1, 5, 14, 11, -1, -1, -1, 15, -1, -1, -1, 0, 3, 14, -1, 0, -1, -1, 6, 0, -1, 5, -1, -1, 0, 28, 6, 12, -1, -1, 0, 4, 0, 0, -1, 2, 0, -1, 6, -1, 3, 3, 0, -1, 20, 13, 16, 6, -1, -1, -1, 0, 14, -1, 0, -1, -1, -1, 0, -1, 6, 6, 31, -1, -1, 4, 1, 2, -1, 6, 1, 16, -1, -1, -1, -1, -1, -1, 1, 3, -1, 10, 8, -1, 22, 13, 15, 14, 3, -1, 0, 1, 0, 4, 0, -1, -1, 3, 16, 0, -1, -1, -1, 23, -1, 15, -1, 11, 13, 0, 0, 9, 2, -1, 10, 10, 1, 8, 0, 25, 0, 5, 11, 12, 30, -1, 13, 0, -1, 1, 14, 0, -1, 12, 0, -1, 0, 1, 15, -1, 3, 2, -1, 24, 6, -1, -1, 1, 14, 0, 13, -1, 9, 0, 31, -1, 3, 20, 2, -1, 28, 10, -1, -1, 8, -1, 7, 2, 15, 0, 0, -1, 18, 1, 17, 1, 6, -1, 7, -1, 27, -1, 0, 11, -1, 0, -1, 2, 3, -1, 2, 1, 2, 17, -1, 9, -1, -1, -1, 23, -1, 7, -1, 0, 27, -1, 1, -1, 8, 12, 0, 0, -1, -1, 7, 1, 0, -1, -1, 0, 0, -1, 6, 26, -1, -1, 0, 9, -1, 1, 0, 1, -1, -1, 15, -1, 0, -1, -1, 2, 2, 0, -1, -1, -1, 7, -1, -1, 2, 0, 0, 0, -1, -1, -1, -1, -1, 0, -1, -1, 1, 0, 5, -1, -1, -1, 4, 4, -1, -1, -1, -1, -1, 27, 25, 0, 26, -1, 4, 4, 0, 1, 11, -1, -1, 18, 12, -1, 11, 6, 5, 9, 2, 3, 15, -1, -1, 2, 17, -1, -1, 1, 0, 0, 9, -1, 13, 4, 20, 11, -1, -1, -1, 5, 12, 0, 4, -1, -1, 0, 0, 7, 0, -1, -1, -1, 28, 7, 1, -1, -1, -1, 5, 14, 7, 3, -1, -1, -1, 7, -1, -1, -1, 7, 0, -1, 0, -1, 1, 0, 5, -1, -1, 10, -1, 18, 8, 0, -1, 2, 8, -1, 4, 7, 17, -1, -1, -1, 20, 2, -1, -1, 2, -1, -1, -1, 6, -1, 0, -1, 26, -1, 26, -1, 12, -1, 8, 0, 0, -1, -1, -1, -1, -1, -1, 0, 8, 2, -1, -1, -1, 22, -1, -1, -1, 5, 0, 19, 5, -1, -1, 0, 0, -1, 6, 0, 4, 0, 31, -1, 9, 8, 1, 14, -1, -1, 9, 10, 27, 26, -1, 0, 17, 1, 11, 3, 1, 27, 14, 6, -1, 0, -1, -1, -1, -1, 0, -1, 0, 11, -1, -1, 15, 7, -1, -1, -1, 27, -1, -1, 5, 3, -1, -1, 1, -1, -1, -1, 0, -1, -1, 17, 7, -1, 9, 0, -1, 4, -1, 0, 10, 13, 3, 0, 0, 6, 0, -1, 18, 0, 1, 0, 0, 10, 6, 13, -1, 9, 2, -1, 0, 11, -1, 25, 19, 12, 0, -1, -1, 18, 19, 3, 6, -1, 13, -1, -1, 17, 4, -1, -1, -1, 3, 0, -1, -1, -1, -1, -1, 0, 6, 22, -1, -1, -1, 24, 0, 16, 9, -1, 25, 5, -1, -1, 17, 9, 0, 2, 2, -1, -1, -1, 0, 10, -1, -1, 14, 8, 10, -1, 0, 8, 4, 1, 12, 9, 5, 15, 3, -1, 7, 0, 4, 4, -1, 19, 8, -1, 8, -1, 0, -1, -1, 0, 8, -1, 31, -1, 30, 1, 5, -1, -1, 20, 1, -1, 11, -1, -1, -1, 0, 17, -1, -1, -1, -1, 4, 13, 9, -1, 5, 23, 1, -1, 7, 4, -1, 1, -1, -1, -1, 21, -1, 27, 1, 7, -1, -1, 0, -1, 3, -1, -1, 7, 9, 5, 6, -1, -1, -1, 21, 4, 4, 12, 23, 3, -1, -1, 3, 11, -1, -1, 9, -1, -1, 9, 6, 5, 15, 0, 9, -1, -1, 19, 27, -1, -1, -1, -1, -1, 2, -1, 9, 0, 1, -1, -1, -1, 14, 1, 5, 0, 30, 3, 10, 31, -1, 0, 9, 0, -1, 20, 1, 4, 2, 4, 0, 0, 6, 0, -1, 4, 0, 1, -1, 3, -1, 1, 2, 1, 22, 20, -1, 3, 2, -1, -1, 0, -1, 14, 5, -1, 3, 1, -1, 8, -1, 1, -1, 0, 6, 8, 15, 3, -1, 7, 12, 13, -1, -1, -1, -1, 11, -1, 0, 13, 0, 28, -1, 2, 0, 19, -1, 8, -1, 1, 25, -1, -1, 8, 3, 27, 1, 2, -1, 15, -1, 0, 0, 0, -1, -1, -1, -1, 2, -1, 13, 5, 0, 22, 4, 0, -1, 0, 9, -1, -1, -1, -1, 1, -1, 10, 2, 10, -1, 13, -1, 3, 5, -1, 11, -1, 8, 2, -1, -1, -1, 3, 5, 3, 3, 21, -1, 0, 2, -1, 23, 11, 3, 3, 7, 0, -1, -1, 0, 0, 0, 9, -1, -1, 2, -1, 10, 6, 18, 0, 1, 2, 0, 0, -1, 0, -1, 8, 5, 2, -1, -1, 27, -1, 1, -1, 8, 10, 4, 1, 17, 3, 1, -1, 8, -1, -1, -1, -1, 9, -1, -1, 6, 3, 9, -1, 2, -1, -1, 22, -1, -1, 6, 2, 1, 2, 5, 0, -1, 6, -1, 11, -1, 5, 5, -1, -1, 0, -1, -1, -1, -1, 2, -1, 22, -1, -1, 0, 0, 0, 26, -1, -1, 5, 12, -1, -1, -1, 0, 3, 2, 23, 12, -1, -1, 4, 0, 0, -1, -1, -1, -1, 0, -1, -1, -1, 3, 0, 0, 15, 10, 6, 17, -1, 9, -1, 5, -1, -1, 12, 5, 14, 2, -1, 0, -1, 5, -1, 5, -1, -1, 1, 3, 2, -1, -1, 4, -1, 10, 0, 7, 16, 18, 1, 1, 0, 3, 3, 12, 5, 0, -1, 14, 3, -1, -1, 17, 8, 0, -1, 10, 4, 2, -1, -1, 0, -1, 2, 0, 22, -1, 6, 13, 4, -1, -1, 5, 14, 10, 6, 3, 0, -1, 9, 10, 26, 3, 0, 22, 5, 7, -1, 6, -1, -1, -1, 2, -1, 4, 0, 8, 11, 22, -1, 5, 1, 0, 6, 2, 2, -1, -1, -1, 3, 2, 31, -1, 7, -1, -1, 2, 1, 0, 1, -1, -1, -1, 21, 4, -1, 9, -1, 19, -1, 20, 14, -1, 3, 0, 0, 0, 21, 1, -1, 6, -1, 10, -1, 12, -1, 4, 30, 6, -1, 0, 7, 8, 3, -1, -1, -1, 0, -1, -1, -1, 0, -1, 6, 17, -1, 12, -1, 2, 1, 11, -1, -1, -1, -1, -1, -1, -1, 0, 2, -1, 4, -1, -1, -1, -1, 12, 2, 1, 0, 6, 12, -1, -1, 17, 2, -1, 6, -1, -1, -1, 8, 0, 0, 11, -1, 14, -1, -1, -1, 7, 3, -1, -1, 31, 18, 0, 0, -1, 7, 0, -1, 0, 0, 18, 14, 6, 7, 30, -1, 14, -1, 7, 6, -1, -1, -1, -1, 0, 5, 9, 0, 0, -1, 12, -1, -1, 20, 0, -1, 4, 0, 4, 5, 3, 30, -1, -1, -1, 8, 13, 8, -1, 0, 2, -1, -1, -1, -1, -1, 1, 0, 15, 15, -1, 3, 14, 0, -1, 0, 2, -1, 2, 2, 0, 11, 6, 1, 5, -1, -1, 12, -1, 5, -1, -1, -1, -1, 1, -1, 30, 3, 1, -1, 12, 11, -1, 3, 0, -1, 8, -1, 6, -1, -1, 6, 10, 2, 13, -1, 2, 2, 10, 0, 10, 6, -1, -1, 13, -1, -1, 14, -1, -1, -1, -1, 2, 7, -1, 5, 16, 11, 20, 16, 5, -1, -1, 1, 2, 19, 0, 0, 0, 10, 16, -1, 0, -1, 9, 25, -1, 1, 13, 9, -1, 8, 0, -1, 7, 17, -1, 0, 7, -1, 8, 0, 8, 8, 10, 0, -1, 3, -1, 0, 13, 6, 0, 4, -1, 2, 0, -1, 20, 0, -1, 1, 1, 29, -1, -1, -1, 8, -1, -1, -1, -1, 0, 0, 1, 3, -1, 5, -1, 0, 7, -1, -1, 2, 0, 16, 26, 8, -1, 19, 30, 1, -1, -1, -1, 1, 1, 0, 19, 0, -1, 1, 0, -1, 6, 2, -1, 0, -1, 18, 5, 7, -1, 3, 6, -1, 3, 4, 27, 7, 0, -1, 0, 3, 4, 11, 13, -1, 7, 8, -1, 19, -1, -1, 6, -1, -1, 10, 8, 0, 22, -1, 16, -1, 12, -1, 0, -1, 26, 0, -1, -1, 2, -1, 7, 13, -1, 14, 9, 2, -1, -1, -1, -1, 7, 0, 14, 2, 12, -1, 6, 9, 0, -1, 2, 11, 2, -1, 0, -1, -1, -1, 0, 0, 9, -1, -1, -1, -1, 0, -1, 9, 6, 2, -1, 9, 1, 0, 25, 19, 8, 16, 0, 20, 0, -1, -1, -1, -1, 9, 3, 0, 3, -1, 0, 0, -1, 5, 14, -1, 2, -1, 6, 13, 11, -1, 0, 7, 1, 0, 15, -1, -1, 2, 2, 2, -1, -1, 3, -1, 0, 22, -1, -1, 0, -1, 26, 0, 7, 1, 3, 8, -1, 28, 0, 0, 0, 3, -1, 5, 0, 11, -1, -1, -1, 1, -1, 2, 13, 12, 10, 1, 19, 24, -1, 5, 5, -1, 0, -1, -1, 0, 0, -1, -1, 5, -1, 4, 2, 22, 25, -1, 0, -1, 29, 22, -1, 28, -1, 15, 3, 22, 1, 5, 5, -1, -1, 5, -1, 6, 5, 12, -1, 10, -1, 1, 27, -1, 20, 19, 5, 2, 19, 0, -1, 18, 3, 22, -1, -1, 1, 3, 0, -1, 15, -1, 0, -1, 0, -1, -1, 28, 29, -1, 24, -1, -1, 6, -1, -1, 0, 10, 7, 0, -1, 4, -1, 4, -1, 1, -1, 1, 1, 1, -1, 0, 2, 0, 5, 17, 7, 3, 20, -1, -1, -1, 8, -1, 2, 1, 4, 1, 13, -1, 9, 11, -1, 5, -1, -1, 30, 28, 4, 0, 10, -1, 0, 3, 6, -1, -1, 0, 8, 0, -1, 2, -1, 25, 24, 0, -1, -1, 0, 20, 28, -1, -1, -1, 0, -1, 8, -1, -1, 6, -1, -1, 8, -1, 9, -1, 2, 2, 12, -1, -1, 4, -1, -1, 31, 4, -1, -1, -1, -1, 13, 0, 2, -1, 0, 12, 1, 2, -1, 17, -1, 0, 30, 20, 9, 5, 25, 0, 2, 0, 6, 6, -1, 5, 6, 0, 2, -1, 2, 29, 5, -1, 11, -1, -1, -1, 6, -1, 27, -1, -1, -1, -1, 5, -1, 20, 1, -1, -1, 3, 8, -1, 4, 0, -1, 16, 19, -1, 2, -1, 1, -1, 13, -1, -1, 2, -1, -1, -1, -1, 0, 0, 7, 0, 5, 18, 4, -1, 3, 7, 2, 5, -1, 5, 20, -1, -1, -1, 6, -1, 6, 6, 11, 17, 7, 3, -1, -1, -1, -1, -1, -1, 31, 7, -1, -1, 0, 27, -1, -1, 2, -1, -1, 25, 2, 0, -1, 0, 0, 11, -1, 13, -1, -1, 26, -1, -1, 5, -1, -1, 0, 24, -1, 24, 17, 0, 2, 0, -1, 15, 2, -1, 0, 7, -1, 13, -1, 1, -1, 7, 3, 22, 17, 25, 8, -1, 20, -1, 0, 13, -1, -1, -1, 0, -1, 0, 4, 4, 0, -1, 2, -1, -1, 0, -1, -1, 4, 1, 15, 5, 0, -1, 25, 0, 6, -1, 5, -1, 5, -1, 6, 0, -1, -1, 1, 3, -1, -1, -1, 0, 12, 6, 7, -1, -1, -1, -1, 1, 11, -1, 0, 0, -1, -1, -1, -1, -1, 23, -1, -1, 26, 7, 0, 5, -1, 0, 21, -1, -1, 11, 0, -1, -1, 2, -1, 13, 4, -1, 20, -1, -1, -1, 6, 1, -1, -1, -1, -1, 6, 0, 14, 0, 0, 3, -1, 9, 5, -1, 0, 14, -1, 0, 9, 20, -1, 6, -1, 0, -1, -1, 6, 19, 24, 6, 0, -1, -1, -1, 1, 3, 0, 0, 13, -1, 10, 0, 1, 8, 1, -1, 3, -1, 4, -1, -1, -1, 31, -1, -1, 7, -1, 12, -1, -1, 27, 0, 21, 0, -1, 14, -1, -1, 8, 0, -1, 2, -1, 27, 4, -1, -1, 8, 0, 11, 12, 2, -1, -1, 12, 0, 0, 3, -1, 0, 28, -1, 21, 0, -1, 7, -1, 18, 10, 28, 1, -1, -1, -1, -1, 20, -1, 4, 8, -1, -1, 11, 12, -1, 0, -1, 1, 3, 3, -1, 8, -1, 19, -1, 9, -1, 1, -1, 3, -1, 25, 17, -1, 4, -1, 11, -1, -1, 19, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 12, 1, -1, -1, 0, 3, -1, -1, 5, 1, -1, 2, 9, -1, 0, -1, -1, -1, 22, 30, 2, 13, -1, -1, -1, 23, 13, 27, 15, 0, 19, 0, 2, 2, -1, 1, -1, 1, -1, 3, 28, 0, -1, -1, -1, -1, 9, -1, 5, 4, 0, 2, 9, -1, 0, 8, 3, 11, -1, 14, 0, 2, 1, 5, 5, 10, 4, 0, 7, -1, 0, -1, -1, -1, 19, -1, 0, -1, -1, 20, 11, -1, 16, 4, 0, 0, 11, -1, 4, 0, 0, 0, -1, 6, 21, -1, 0, 0, 16, 27, 8, 6, 0, -1, -1, 7, -1, -1, 15, -1, 2, -1, -1, 1, 0, 6, 8, -1, 8, 26, -1, 0, 0, 7, -1, 0, -1, 2, 5, -1, 9, -1, 26, 13, 3, 26, 0, -1, 1, 0, 4, -1, 2, 10, 16, 17, 6, -1, 1, -1, 21, 10, -1, -1, -1, 2, 8, 0, -1, -1, 3, -1, 12, 0, 0, 24, 7, 15, -1, -1, 0, 0, 7, 5, -1, 23, -1, -1, -1, -1, 0, -1, 19, 8, 4, 0, -1, -1, -1, -1, 3, -1, 12, 7, 5, 0, -1, -1, -1, 3, 7, -1, -1, -1, 1, 18, 3, -1, 23, -1, 9, 11, 0, -1, 2, 0, 8, -1, 8, 0, -1, 10, 4, -1, 1, -1, 0, 0, -1, -1, 23, 5, -1, -1, -1, 13, 1, 0, -1, 5, 4, -1, -1, 0, 2, -1, 4, 6, -1, 8, 0, -1, -1, -1, -1, 30, 3, 20, 15, -1, 26, 1, 1, -1, 9, 8, 13, 7, 10, 5, -1, 5, -1, -1, 7, 2, 14, -1, 1, 0, 6, 1, -1, -1, -1, 18, -1, 16, 5, -1, 6, 4, 20, 28, 1, 1, -1, -1, -1, 0, 12, 7, -1, -1, 1, 12, 0, 6, 1, 22, 0, -1, 3, -1, -1, -1, 0, 18, 3, 6, 6, -1, 12, -1, 10, -1, -1, 0, 10, -1, 5, 8, 7, -1, 0, 17, -1, 1, 0, 10, -1, -1, -1, 2, 0, -1, 3, 22, -1, 12, -1, 27, 0, 1, -1, 4, 0, 0, 30, 16, -1, 7, 0, -1, 6, -1, -1, -1, 8, 1, 12, 0, 13, 9, 8, 0, 0, 5, -1, 5, -1, -1, 0, 10, -1, -1, 0, -1, -1, 2, -1, -1, -1, 7, -1, -1, 0, -1, -1, 6, 12, 13, -1, -1, -1, 21, 4, 3, -1, -1, 11, 0, 18, -1, -1, 1, -1, -1, 11, 4, -1, 10, 2, 26, -1, 2, 0, 14, -1, 2, 0, 12, 1, -1, 15, 0, 2, 5, -1, -1, 30, 8, 1, 3, -1, 4, 0, -1, 20, 1, 16, 2, -1, 7, 0, 9, 0, 5, -1, 0, 4, 2, 24, 14, -1, 2, -1, -1, 30, 12, 4, 5, -1, 7, 3, -1, 5, 23, -1, -1, 7, -1, 6, -1, 9, 0, -1, 16, -1, -1, 6, 23, 18, 0, 0, -1, 15, -1, 7, 7, -1, -1, 2, 1, 0, 7, 15, -1, 12, -1, 4, -1, 11, 0, -1, 0, 0, 3, 1, 0, -1, 23, -1, -1, -1, 9, -1, 1, 1, 12, 15, -1, 30, 0, 0, -1, -1, 1, 1, -1, 1, 4, 12, 12, 3, 9, 12, -1, -1, 0, -1, -1, -1, 2, 2, 0, 25, 11, -1, 0, -1, 6, 21, 10, -1, 16, 16, -1, 7, -1, 23, 23, 0, -1, 1, 4, -1, 13, 8, -1, -1, -1, -1, 14, -1, 2, -1, 0, -1, 0, 0, 0, 1, 22, -1, 16, 3, 2, 0, -1, 19, -1, -1, -1, -1, -1, 1, 3, -1, -1, 1, 14, 0, -1, 2, 10, 0, 19, 8, 15, 3, -1, 3, -1, -1, 20, 11, 2, -1, -1, 0, 31, 3, -1, 4, 16, -1, 3, -1, 8, 17, -1, 3, 3, -1, -1, -1, 9, 1, 15, 0, 13, 0, 1, -1, -1, -1, 1, 7, 2, 3, 0, -1, 0, -1, -1, 5, -1, 6, -1, 4, 29, 14, 0, 1, 1, 0, 0, -1, 23, 0, -1, -1, -1, 3, 25, 0, 6, -1, -1, 18, 8, 1, -1, 20, 3, 0, 1, -1, -1, 12, 5, -1, 0, -1, 0, 0, 5, 23, 10, 1, -1, -1, 10, 2, -1, 19, 1, 9, 0, -1, -1, 26, 25, 4, 11, 8, -1, -1, 2, -1, -1, 23, 10, 0, 2, -1, 4, 3, 0, 9, -1, -1, 0, 1, 19, 1, 11, 4, -1, -1, 1, 24, -1, 27, 5, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, 7, 11, 4, 1, 7, 26, 5, -1, 1, 5, 0, 0, 3, -1, 0, 1, 12, 7, -1, 3, -1, 1, 0, -1, 8, 12, 4, 23, 6, -1, -1, -1, -1, -1, 25, 2, -1, -1, 4, 2, -1, 24, 2, 2, 6, 8, 18, 0, -1, -1, 0, -1, 3, 14, 0, 3, 18, -1, -1, -1, -1, 29, -1, 1, -1, -1, 3, -1, -1, 2, 19, 0, 26, -1, 4, 8, -1, 18, -1, 0, 8, 3, 0, 1, 5, -1, -1, -1, 2, 13, 0, 22, 0, 5, -1, 1, 2, -1, -1, -1, 0, -1, 4, -1, 0, 10, -1, 3, -1, -1, 1, 2, -1, 1, 16, -1, -1, -1, -1, 25, -1, -1, 3, 7, -1, -1, 7, 27, -1, -1, 18, 0, 3, -1, -1, -1, 4, -1, 23, 18, -1, 6, -1, -1, 1, -1, 1, -1, 21, 0, -1, -1, 8, 0, 6, 6, -1, 0, -1, 0, 2, -1, -1, 25, -1, 2, -1, 15, 0, 3, 13, 8, 7, 9, 0, -1, 10, -1, 0, 4, -1, -1, 2, 2, 6, -1, -1, 20, -1, -1, -1, 0, -1, -1, -1, -1, 8, 11, 7, 0, 0, 7, 15, 1, -1, 7, -1, 0, 1, 0, 0, 15, -1, 6, -1, -1, 2, 1, 2, -1, -1, -1, -1, 1, -1, 3, 2, 7, -1, -1, 3, -1, 1, -1, -1, -1, 0, -1, -1, 0, -1, 14, 18, -1, 0, 7, 7, -1, 9, -1, 0, 0, 1, 5, -1, -1, 28, 1, 2, 19, 13, 21, 6, -1, 29, 23, -1, 0, 4, -1, 1, -1, 0, -1, -1, 25, 30, 0, 24, -1, 26, 0, -1, 0, -1, 16, 0, 1, 24, -1, 4, -1, 8, -1, -1, -1, 29, 2, -1, -1, 1, -1, 2, -1, 9, 1, -1, -1, 13, 12, 29, -1, -1, 4, 7, 3, 13, 13, 1, 0, 8, -1, 0, 9, 6, 7, 5, 1, -1, -1, 2, 17, 3, 15, -1, 8, -1, 1, 19, 3, -1, 10, 15, -1, 0, 2, 8, 22, 29, 8, -1, -1, -1, -1, 25, 4, 6, 0, 11, -1, -1, -1, -1, 21, -1, 27, 4, 0, 22, 4, 0, -1, -1, 0, 26, 6, -1, -1, 5, 9, 1, 6, -1, 19, -1, 20, -1, 1, -1, -1, -1, 26, 25, 0, 15, 0, -1, -1, 0, -1, -1, 0, 3, 21, -1, -1, -1, 0, 0, 16, -1, -1, 16, 22, -1, 5, -1, -1, 0, -1, -1, -1, 15, 11, -1, 0, 0, 8, 3, 1, 4, 11, 9, 0, 4, 15, -1, -1, 26, 0, 0, -1, -1, -1, 24, 3, 0, -1, 1, 2, 11, 0, 6, 8, -1, 25, 1, 0, -1, 0, -1, -1, 2, 27, 6, 21, 17, -1, -1, 26, 2, 10, -1, -1, 27, 24, 1, -1, -1, 8, -1, 2, 24, 8, -1, 0, 0, -1, 0, -1, 0, 6, 21, -1, 14, 3, 0, 9, 4, 9, 12, 0, 1, -1, -1, -1, 7, -1, 2, 8, -1, -1, 4, 0, -1, -1, -1, 9, -1, 0, -1, 5, -1, -1, 29, 4, 18, -1, 9, 0, 31, 19, 1, 1, 15, 3, 5, -1, -1, 0, 6, 20, 4, 8, 4, 0, 2, 3, -1, -1, 2, 1, 31, 3, 0, 21, 9, 8, -1, -1, 7, 4, 16, 23, 0, -1, 1, 0, -1, -1, 0, -1, -1, 0, -1, -1, -1, 0, -1, 0, -1, 19, 18, 0, 0, 11, -1, 3, -1, 5, 27, 0, 9, -1, -1, 5, 0, 0, 0, 24, 3, 0, -1, -1, -1, -1, 8, -1, 5, 0, -1, 2, 4, 7, 0, -1, 0, -1, 2, -1, -1, 11, 17, -1, 1, 1, 1, 2, 12, 19, 2, 16, 4, 3, 14, 30, 0, 22, -1, -1, 6, 5, -1, -1, -1, -1, 9, 5, 3, -1, 7, -1, 0, 0, 2, 6, 0, -1, 0, 17, -1, -1, -1, 24, -1, -1, -1, 11, 8, -1, 5, -1, -1, -1, 1, 21, -1, 6, 3, 11, -1, 0, -1, -1, 15, -1, 10, -1, -1, -1, 7, 2, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 3, -1, 2, 8, 2, 2, 18, 12, 7, 10, 15, 19, -1, -1, 5, -1, -1, 5, 18, 0, 30, 1, 15, -1, 3, 0, 0, -1, 13, -1, 26, 0, 6, 3, -1, -1, 1, 0, 3, 8, 15, 1, -1, 14, 0, 1, 18, 4, 2, 27, -1, 9, -1, 0, -1, -1, -1, 10, 15, -1, -1, 0, -1, -1, 21, 2, 0, 2, 11, 14, -1, 12, 8, 0, 3, 3, 0, 6, 24, -1, 0, 0, 4, -1, 28, 29, 6, 1, 0, 0, -1, -1, 9, -1, 1, -1, 18, -1, -1, -1, 2, -1, 8, 4, -1, 2, -1, 18, 0, -1, 0, 23, -1, 23, 3, 0, -1, -1, -1, 12, 4, -1, 8, 1, -1, 2, -1, -1, 7, 4, 21, -1, -1, 0, 0, -1, 4, -1, 0, 6, 23, 2, 0, 9, -1, 7, 0, 8, 0, 3, 6, 2, 10, 0, 11, 15, 9, 0, 1, -1, 15, 14, 0, 0, 15, 0, 22, -1, -1, 18, 0, -1, -1, -1, 0, 5, 1, 6, 1, -1, 22, -1, 7, 27, 1, 27, 0, 4, 23, -1, -1, -1, 1, 2, -1, -1, 0, -1, -1, -1, -1, 1, 14, 0, 19, -1, 0, -1, 0, -1, 1, -1, -1, -1, 2, 8, 0, 15, 10, 2, -1, -1, -1, 25, 2, 9, 1, 3, -1, -1, 6, -1, -1, 16, 25, 2, 5, -1, 19, -1, -1, 0, 10, -1, 15, -1, 5, 1, 0, -1, 1, -1, 0, 7, 6, -1, 3, 12, -1, -1, -1, 0, 6, 0, 4, 1, 2, 2, 5, 11, 12, -1, 18, -1, 1, 13, 6, 16, 11, 21, 17, -1, 11, -1, -1, -1, 0, 2, 14, -1, 3, -1, -1, -1, -1, -1, 3, -1, 14, 4, -1, 19, 27, -1, 0, 0, -1, 0, 14, 8, -1, 7, 13, 0, -1, -1, 0, -1, 7, -1, -1, 7, 2, 17, 18, 0, -1, -1, 8, 20, -1, 10, 11, -1, -1, 2, 19, 20, 5, -1, -1, 0, -1, 4, -1, 10, 1, -1, 6, -1, 7, -1, 21, -1, -1, 5, 9, -1, -1, -1, -1, 9, -1, 2, 2, 3, 10, 29, 6, 1, 6, -1, 25, 0, -1, 15, -1, 25, 2, 7, -1, -1, -1, -1, 24, 11, -1, -1, 16, 3, 1, 7, -1, 18, -1, 6, -1, 0, -1, -1, 2, 16, 2, 4, 31, 2, 7, 0, 8, 1, 15, 0, -1, -1, -1, -1, -1, 8, 4, 6, -1, -1, 8, 6, 2, 0, 0, 17, 4, -1, 1, 2, -1, 0, -1, -1, 7, 0, -1, -1, 4, 0, -1, 2, 0, -1, 28, 2, -1, -1, -1, 21, 15, 17, -1, 0, 20, 27, 2, 9, 6, -1, 12, 22, 4, -1, 0, -1, -1, 5, 5, -1, -1, 0, 0, -1, 6, -1, -1, 0, 1, -1, -1, 3, -1, -1, -1, -1, 23, 0, 10, 0, 0, 11, 13, -1, -1, -1, 22, 10, -1, 21, 15, 4, -1, 0, -1, 4, 1, 2, 16, 8, 5, -1, 0, 0, 0, 2, 12, 7, 21, -1, 0, -1, -1, 7, 2, 0, -1, -1, 0, 0, -1, 0, 0, -1, 3, 1, 11, -1, 10, -1, -1, 11, 1, 11, 12, 6, 4, 0, 9, 1, 0, 10, -1, 0, -1, 17, -1, 4, 16, -1, 9, -1, 2, 7, -1, 19, -1, -1, -1, 16, 0, -1, 2, 1, -1, -1, 13, -1, 6, 28, 7, 11, 0, -1, 0, 12, -1, 16, 13, 6, -1, -1, 16, 0, 0, 3, -1, 1, -1, 7, -1, 2, 5, 14, 3, 10, -1, 8, 4, 9, -1, 2, 24, 18, 1, 5, -1, 4, 3, 27, 0, 4, -1, 0, -1, 4, 10, 3, 2, 1, 2, -1, -1, -1, 13, 2, 1, 7, -1, -1, 29, 23, 6, 13, -1, 0, -1, 6, 17, 7, 7, 16, -1, 8, 0, 14, -1, 8, 2, -1, 4, -1, 7, -1, -1, -1, 3, 20, -1, 0, 23, 0, 1, 22, 7, 8, 3, 0, -1, -1, 9, 6, -1, -1, 13, -1, 3, 1, 14, 8, -1, 14, -1, 5, 17, 9, 17, 2, 0, 0, 0, -1, 1, -1, -1, 0, 18, 2, 6, 3, 0, -1, 4, -1, 3, -1, 0, -1, 10, -1, 22, -1, -1, 28, 0, 0, 2, 18, 16, -1, -1, 2, 10, 0, 1, -1, 0, 5, 10, 13, 0, -1, 3, 3, -1, 18, 0, 4, 3, 11, 8, 14, -1, 14, 26, 31, -1, -1, 22, 0, 7, -1, 26, -1, -1, 8, 0, 13, 1, 0, -1, -1, -1, 4, 0, -1, -1, -1, -1, 3, 23, 2, 29, 0, -1, 10, -1, -1, 27, 0, 18, 3, -1, -1, 1, 0, 0, -1, 24, -1, -1, -1, 3, 24, 21, -1, 7, -1, 9, 1, 2, 10, -1, -1, 4, 2, -1, -1, 2, 8, 0, -1, 0, 9, 0, 0, -1, -1, 3, 1, -1, 15, -1, 9, 1, -1, -1, -1, -1, -1, 1, 17, 11, 24, -1, -1, -1, -1, 14, 5, 1, 4, -1, 28, 12, 17, 19, 6, 8, 0, 24, 3, -1, -1, 9, 7, 0, 0, 15, 3, 2, 29, 4, 8, -1, 10, -1, 10, 0, -1, 10, 20, -1, 7, 0, 5, -1, 3, 1, -1, 11, 14, 2, 4, 0, 6, -1, 27, 7, -1, 19, -1, 13, -1, 3, 0, -1, -1, 5, -1, -1, 0, 28, 2, 6, 6, 2, 0, 1, 2, 0, -1, 5, -1, 0, 2, -1, 3, 0, -1, 19, -1, -1, 14, 10, 0, 28, -1, -1, 23, 2, -1, 0, 1, 0, 0, -1, -1, 5, 11, 2, 0, 23, 2, -1, -1, 4, 12, 6, -1, -1, -1, 9, -1, -1, 0, 10, 2, 2, -1, -1, 0, 0, -1, -1, 4, 1, -1, 15, 0, -1, 16, 0, 25, 0, -1, -1, -1, 24, 2, 8, -1, -1, 11, -1, 0, 0, 0, 0, 9, 2, -1, 7, 3, -1, -1, 7, 1, 12, 1, -1, -1, -1, -1, 11, 10, 7, 26, 5, -1, 0, 8, -1, 1, 22, 9, -1, 17, 9, -1, 13, 5, 10, -1, 25, -1, 9, 31, 0, 13, -1, -1, 7, 22, -1, 14, 0, -1, 30, 2, -1, 1, -1, -1, -1, 11, 3, -1, -1, 20, 0, -1, 0, 11, -1, 2, -1, -1, 1, 8, -1, -1, 22, 1, 14, -1, 30, 1, 16, -1, 3, 0, -1, -1, 16, -1, 1, 15, -1, -1, 1, -1, 7, -1, 3, 7, 0, 24, 4, 1, 26, -1, 3, 5, 0, 28, 24, 31, 27, 6, 2, 0, -1, -1]