-
Notifications
You must be signed in to change notification settings - Fork 4
/
Lecture 8-17.txt
210 lines (189 loc) · 54.1 KB
/
Lecture 8-17.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:40:30) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
=============== RESTART: C:/Python27/julianclass/beer_data.py ===============
Reading Data...
done
>>> len(data)
50000
>>> data[6993]
{'beer/style': 'American Porter', 'beer/ABV': 5.4, 'beer/beerId': '4372', 'review/timeStruct': {'wday': 3, 'isdst': 0, 'mday': 4, 'hour': 8, 'min': 36, 'sec': 9, 'year': 2010, 'yday': 35, 'mon': 2}, 'review/aroma': 4.0, 'review/appearance': 3.5, 'review/timeUnix': 1265272569, 'review/palate': 3.5, 'review/taste': 4.0, 'beer/name': 'Puget Sound Porter', 'beer/brewerId': '1386', 'review/overall': 4.5, 'review/text': "From a 22 oz bomber poured into a goblet\t\tA - pours dark brown, with a light, off-white foam, and leaves a fairly thin lacing around the glass. Pretty porter-like.\t\tS - A nice nose of coffee, cake, and bittersweet chocolate will entice your curiosity. Starting to look promising. \t\tT - Mmm...very smooth, and flavorful for a session beer. Lots of smooth coffee, roasted malts, and a bit of chocolate brownie. The hopping on this one is done just right, and makes for one drinkable dark brew.\t\tM - Medium/Medium light bodied. Seems about right, though I think it could use just a hair more body in this area.\t\tD - This is one of the most drinkable Porters I've come across. Absolutely perfect for sessioning!\t\tOverall - A very solid, and local (to me) Porter I'll be happy to drink again. I'll have to try this one on tap soon.", 'user/profileName': 'Flightoficarus'}
>>> type(data)
<type 'list'>
>>> type(data[6993])
<type 'dict'>
>>> data[6993]['user/profileName']
'Flightoficarus'
>>> for d in data[:10]:
print 'username:' , d['user/profileName'],'beername:' , d['beer/name'], 'review:', d['review/overall']
username: stcules beername: Sausa Weizen review: 1.5
username: stcules beername: Red Moon review: 3.0
username: stcules beername: Black Horse Black Beer review: 3.0
username: stcules beername: Sausa Pils review: 3.0
username: johnmichaelsen beername: Cauldron DIPA review: 4.0
username: oline73 beername: Caldera Ginger Beer review: 3.0
username: Reidrover beername: Caldera Ginger Beer review: 3.5
username: alpinebryant beername: Caldera Ginger Beer review: 3.0
username: LordAdmNelson beername: Caldera Ginger Beer review: 4.0
username: augustgarage beername: Caldera Ginger Beer review: 4.5
>>> for d in data[:10]:
print 'username:' + d['user/profileName'],'beername:' , d['beer/name'], 'review:', d['review/overall']
username:stcules beername: Sausa Weizen review: 1.5
username:stcules beername: Red Moon review: 3.0
username:stcules beername: Black Horse Black Beer review: 3.0
username:stcules beername: Sausa Pils review: 3.0
username:johnmichaelsen beername: Cauldron DIPA review: 4.0
username:oline73 beername: Caldera Ginger Beer review: 3.0
username:Reidrover beername: Caldera Ginger Beer review: 3.5
username:alpinebryant beername: Caldera Ginger Beer review: 3.0
username:LordAdmNelson beername: Caldera Ginger Beer review: 4.0
username:augustgarage beername: Caldera Ginger Beer review: 4.5
>>> for d in data[:10]:
print 'username:' + d['user/profileName'].rjust(50),'beername:' + d['beer/name'].rjust(50), 'review:'+ d['review/overall'].rjust(50)
username: stcules beername: Sausa Weizen
Traceback (most recent call last):
File "<pyshell#11>", line 2, in <module>
print 'username:' + d['user/profileName'].rjust(50),'beername:' + d['beer/name'].rjust(50), 'review:'+ d['review/overall'].rjust(50)
AttributeError: 'float' object has no attribute 'rjust'
>>> for d in data[:10]:
print 'username:' + d['user/profileName'].rjust(50),'beername:' + d['beer/name'].rjust(50), 'review:'+ str(d['review/overall']).rjust(50)
username: stcules beername: Sausa Weizen review: 1.5
username: stcules beername: Red Moon review: 3.0
username: stcules beername: Black Horse Black Beer review: 3.0
username: stcules beername: Sausa Pils review: 3.0
username: johnmichaelsen beername: Cauldron DIPA review: 4.0
username: oline73 beername: Caldera Ginger Beer review: 3.0
username: Reidrover beername: Caldera Ginger Beer review: 3.5
username: alpinebryant beername: Caldera Ginger Beer review: 3.0
username: LordAdmNelson beername: Caldera Ginger Beer review: 4.0
username: augustgarage beername: Caldera Ginger Beer review: 4.5
>>> for d in data[:10]:
print ('username:' + d['user/profileName']).rjust(50),('beername:' + d['beer/name']).rjust(50),( 'review:'+ str(d['review/overall'])).rjust(50)
username:stcules beername:Sausa Weizen review:1.5
username:stcules beername:Red Moon review:3.0
username:stcules beername:Black Horse Black Beer review:3.0
username:stcules beername:Sausa Pils review:3.0
username:johnmichaelsen beername:Cauldron DIPA review:4.0
username:oline73 beername:Caldera Ginger Beer review:3.0
username:Reidrover beername:Caldera Ginger Beer review:3.5
username:alpinebryant beername:Caldera Ginger Beer review:3.0
username:LordAdmNelson beername:Caldera Ginger Beer review:4.0
username:augustgarage beername:Caldera Ginger Beer review:4.5
>>> for d in data[:10]:
print ('username:' + d['user/profileName']).rjust(1),('beername:' + d['beer/name']).rjust(50),( 'review:'+ str(d['review/overall'])).rjust(50)
username:stcules beername:Sausa Weizen review:1.5
username:stcules beername:Red Moon review:3.0
username:stcules beername:Black Horse Black Beer review:3.0
username:stcules beername:Sausa Pils review:3.0
username:johnmichaelsen beername:Cauldron DIPA review:4.0
username:oline73 beername:Caldera Ginger Beer review:3.0
username:Reidrover beername:Caldera Ginger Beer review:3.5
username:alpinebryant beername:Caldera Ginger Beer review:3.0
username:LordAdmNelson beername:Caldera Ginger Beer review:4.0
username:augustgarage beername:Caldera Ginger Beer review:4.5
>>> data[0]
{'beer/style': 'Hefeweizen', 'beer/ABV': 5.0, 'beer/beerId': '47986', 'review/timeStruct': {'wday': 0, 'isdst': 0, 'mday': 16, 'hour': 20, 'min': 57, 'sec': 3, 'year': 2009, 'yday': 47, 'mon': 2}, 'review/aroma': 2.0, 'review/appearance': 2.5, 'review/timeUnix': 1234817823, 'review/palate': 1.5, 'review/taste': 1.5, 'beer/name': 'Sausa Weizen', 'beer/brewerId': '10325', 'review/overall': 1.5, 'review/text': 'A lot of foam. But a lot.\tIn the smell some banana, and then lactic and tart. Not a good start.\tQuite dark orange in color, with a lively carbonation (now visible, under the foam).\tAgain tending to lactic sourness.\tSame for the taste. With some yeast and banana.', 'user/profileName': 'stcules'}
>>> from collections import defaultdict
>>> beer_style_dict = defaultdict(str)
>>> for d in data:
beer_style_dict(d['beer/name'])=d['beer/style']
SyntaxError: can't assign to function call
>>> for d in data:
beer_style_dict[d['beer/name']]=d['beer/style']
>>> beer_style_dict['Sausa Weizen']
'Hefeweizen'
>>> beer_style_dict['Budweiser']
''
>>> data_age = [d['user/ageInSeconds'] for d in data]
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
data_age = [d['user/ageInSeconds'] for d in data]
KeyError: 'user/ageInSeconds'
>>> data_reviews = [d['review/overall'] for d in data]
>>> data_reviews[:10]
[1.5, 3.0, 3.0, 3.0, 4.0, 3.0, 3.5, 3.0, 4.0, 4.5]
>>> data_age = [d['user/ageInSeconds'] for d in data if 'user/ageInSeconds' in d]
>>> data_age[:10]
[3581417047L, 1782054247, 983372647, 1263823447, 893171047, 958748647, 1137506648, 1018364647, 1036073047, 1239462247]
>>> len(data)
50000
>>> len(data_age)
10479
>>> data_age_years = [d/60/60/24/365 for d in data_age]
>>> data_age_years[:10]
[113L, 56, 31, 40, 28, 30, 36, 32, 32, 39]
>>> data_age_years
[113L, 56, 31, 40, 28, 30, 36, 32, 32, 39, 38, 32, 31, 28, 30, 30, 43, 27, 33, 42, 35, 36, 36, 30, 35, 26, 41, 26, 34, 38, 32, 53, 37, 34, 49, 32, 38, 33, 37, 26, 27, 36, 32, 29, 41, 32, 25, 36, 30, 37, 36, 113L, 36, 37, 32, 32, 30, 32, 27, 35, 33, 27, 29, 25, 38, 27, 38, 32, 34, 29, 32, 53, 59, 29, 32, 28, 46, 28, 41, 29, 48, 36, 39, 28, 37, 39, 34, 42, 31, 28, 29, 34, 49, 31, 28, 43, 31, 38, 32, 36, 37, 32, 56, 37, 37, 29, 45, 31, 30, 41, 28, 53, 32, 30, 30, 42, 43, 33, 57, 36, 35, 37, 42, 38, 33, 33, 28, 41, 50, 45, 44, 33, 40, 29, 26, 34, 34, 25, 38, 31, 35, 36, 31, 59, 41, 38, 32, 36, 33, 42, 36, 30, 64, 29, 35, 26, 35, 38, 27, 27, 50, 41, 53, 37, 30, 28, 55, 26, 34, 42, 32, 49, 37, 34, 35, 37, 29, 52, 56, 45, 35, 25, 26, 27, 49, 44, 39, 34, 29, 29, 38, 31, 34, 29, 47, 29, 38, 38, 27, 28, 43, 32, 31, 35, 39, 39, 34, 33, 29, 30, 51, 33, 28, 38, 40, 43, 32, 59, 44, 28, 46, 33, 31, 47, 42, 31, 41, 30, 31, 34, 38, 32, 39, 34, 35, 61, 38, 70L, 40, 50, 45, 41, 38, 37, 51, 48, 32, 31, 36, 38, 32, 40, 36, 39, 31, 37, 36, 56, 34, 44, 50, 31, 44, 34, 41, 36, 39, 34, 49, 25, 27, 32, 31, 34, 60, 35, 34, 34, 32, 43, 37, 39, 40, 37, 34, 22, 28, 25, 34, 42, 60, 41, 26, 29, 41, 34, 29, 42, 54, 36, 35, 45, 34, 38, 38, 115L, 115L, 34, 41, 41, 32, 45, 60, 32, 56, 41, 28, 41, 41, 41, 41, 41, 30, 41, 30, 41, 41, 41, 41, 41, 30, 30, 41, 25, 41, 41, 41, 41, 29, 41, 51, 51, 31, 51, 43, 41, 28, 31, 51, 49, 115L, 43, 28, 28, 27, 51, 41, 43, 32, 43, 51, 51, 27, 43, 27, 28, 31, 43, 29, 33, 33, 34, 28, 34, 51, 46, 27, 49, 33, 29, 47, 33, 34, 46, 49, 33, 33, 33, 47, 39, 27, 29, 47, 41, 29, 33, 33, 41, 29, 55, 33, 49, 51, 29, 33, 33, 34, 46, 32, 29, 47, 55, 34, 46, 34, 32, 29, 36, 42, 43, 33, 32, 32, 38, 38, 31, 45, 41, 34, 39, 34, 47, 38, 34, 39, 41, 47, 38, 38, 47, 34, 35, 39, 32, 44, 36, 48, 40, 32, 31, 40, 32, 34, 43, 32, 30, 39, 44, 36, 45, 47, 34, 39, 49, 38, 39, 29, 34, 29, 29, 29, 47, 29, 113L, 41, 29, 29, 38, 29, 34, 29, 34, 29, 29, 29, 75L, 29, 29, 33, 29, 33, 29, 29, 26, 26, 26, 26, 26, 39, 32, 39, 39, 39, 25, 32, 29, 32, 25, 37, 25, 29, 32, 25, 32, 25, 37, 34, 29, 25, 32, 32, 29, 32, 34, 39, 25, 51, 51, 51, 34, 34, 34, 33, 34, 40, 35, 33, 33, 32, 27, 36, 36, 36, 36, 33, 36, 36, 35, 42, 46, 32, 29, 41, 41, 44, 28, 32, 30, 28, 60, 55, 38, 45, 32, 36, 25, 38, 38, 28, 38, 38, 38, 30, 57, 37, 36, 32, 33, 56, 113L, 40, 32, 25, 47, 40, 33, 27, 31, 52, 29, 31, 26, 29, 34, 50, 53, 37, 34, 37, 28, 35, 28, 38, 27, 47, 28, 39, 33, 42, 38, 29, 39, 35, 36, 38, 42, 47, 38, 27, 35, 32, 33, 34, 38, 41, 59, 32, 32, 32, 37, 59, 36, 34, 47, 27, 33, 42, 113L, 38, 47, 50, 45, 38, 40, 37, 37, 37, 36, 28, 28, 31, 30, 53, 47, 30, 33, 32, 34, 115L, 50, 47, 37, 28, 32, 31, 43, 56, 32, 29, 50, 43, 33, 31, 29, 57, 38, 33, 33, 34, 34, 32, 38, 41, 29, 24, 27, 28, 32, 39, 49, 40, 48, 32, 30, 52, 28, 30, 35, 30, 31, 27, 37, 37, 27, 40, 36, 36, 31, 39, 47, 34, 25, 27, 32, 36, 32, 43, 31, 26, 29, 38, 34, 50, 29, 41, 47, 32, 38, 32, 47, 28, 27, 28, 32, 27, 33, 41, 53, 27, 31, 31, 40, 39, 37, 48, 33, 31, 30, 26, 32, 26, 31, 29, 31, 50, 34, 33, 27, 25, 30, 57, 32, 32, 34, 50, 35, 37, 30, 26, 28, 41, 27, 34, 32, 37, 28, 30, 35, 29, 36, 27, 37, 57, 27, 27, 47, 36, 39, 37, 57, 28, 39, 59, 40, 42, 38, 36, 30, 32, 32, 34, 43, 53, 113L, 31, 43, 33, 42, 50, 32, 57, 33, 31, 50, 32, 41, 38, 37, 47, 65, 27, 38, 27, 38, 25, 47, 47, 113L, 27, 31, 34, 45, 29, 32, 56, 60, 30, 38, 37, 31, 50, 35, 27, 34, 60, 39, 50, 45, 42, 37, 31, 35, 32, 53, 36, 32, 37, 47, 33, 30, 28, 31, 39, 28, 41, 36, 40, 34, 34, 37, 32, 30, 32, 34, 36, 47, 33, 31, 29, 41, 27, 35, 33, 28, 31, 33, 32, 50, 33, 28, 27, 32, 35, 37, 39, 37, 32, 29, 37, 34, 26, 32, 47, 36, 32, 34, 28, 37, 37, 27, 32, 26, 30, 36, 28, 30, 32, 50, 37, 38, 29, 29, 30, 27, 41, 30, 39, 35, 35, 53, 36, 34, 39, 48, 37, 34, 43, 40, 113L, 37, 43, 35, 36, 27, 28, 34, 29, 33, 31, 33, 27, 28, 32, 31, 45, 38, 34, 31, 32, 31, 33, 34, 32, 28, 32, 35, 29, 31, 41, 37, 39, 57, 34, 28, 36, 33, 30, 57, 28, 37, 26, 41, 35, 49, 31, 40, 26, 28, 32, 25, 26, 32, 36, 26, 38, 47, 39, 38, 27, 37, 39, 27, 25, 26, 37, 44, 29, 27, 34, 29, 31, 47, 38, 27, 38, 35, 47, 31, 31, 35, 26, 33, 31, 33, 31, 31, 28, 31, 29, 36, 39, 48, 31, 30, 40, 30, 32, 39, 30, 26, 35, 28, 32, 30, 35, 37, 36, 32, 32, 28, 29, 27, 41, 28, 26, 29, 29, 43, 45, 28, 34, 32, 39, 30, 41, 28, 30, 28, 26, 30, 34, 29, 34, 36, 60, 48, 57, 32, 32, 29, 37, 29, 34, 51, 47, 39, 37, 34, 40, 27, 37, 33, 27, 38, 31, 34, 29, 47, 39, 34, 34, 32, 29, 33, 30, 36, 37, 28, 27, 28, 33, 39, 39, 33, 29, 42, 29, 45, 27, 53, 31, 81L, 39, 43, 35, 32, 38, 30, 37, 50, 36, 28, 32, 31, 31, 31, 35, 32, 36, 29, 57, 30, 34, 43, 40, 33, 37, 59, 50, 29, 34, 33, 38, 32, 36, 43, 31, 35, 32, 29, 41, 40, 33, 33, 43, 33, 36, 32, 50, 30, 30, 41, 32, 35, 32, 41, 38, 38, 37, 41, 47, 30, 25, 29, 34, 32, 55, 50, 43, 43, 41, 32, 35, 50, 29, 24, 31, 37, 42, 38, 39, 37, 39, 38, 42, 32, 39, 30, 28, 37, 38, 47, 39, 43, 32, 57, 42, 38, 29, 35, 36, 43, 35, 32, 50, 36, 47, 31, 47, 50, 25, 31, 39, 32, 37, 27, 35, 25, 33, 32, 30, 39, 38, 41, 38, 45, 30, 38, 34, 37, 60, 35, 35, 35, 40, 65, 65, 38, 32, 41, 40, 25, 32, 39, 37, 38, 38, 43, 29, 41, 45, 45, 49, 49, 36, 36, 36, 42, 41, 36, 36, 32, 38, 34, 50, 38, 63, 40, 32, 38, 29, 38, 34, 38, 29, 113L, 32, 38, 37, 34, 33, 38, 41, 32, 39, 38, 34, 37, 38, 38, 38, 29, 29, 26, 35, 25, 33, 26, 38, 57, 28, 34, 25, 39, 42, 34, 38, 44, 31, 26, 38, 25, 26, 57, 28, 34, 25, 39, 42, 34, 38, 31, 44, 31, 26, 38, 25, 35, 26, 24, 28, 38, 25, 34, 39, 34, 42, 38, 44, 38, 48, 31, 26, 35, 25, 26, 35, 38, 57, 28, 31, 25, 34, 27, 39, 34, 42, 38, 44, 38, 31, 26, 45, 30, 38, 45, 47, 45, 28, 40, 42, 36, 58, 44, 43, 38, 39, 35, 29, 33, 47, 34, 31, 47, 34, 58, 36, 34, 66, 50, 47, 26, 32, 51, 28, 36, 42, 31, 43, 42, 33, 33, 50, 51, 33, 45, 41, 32, 40, 115L, 28, 33, 33, 30, 38, 42, 30, 41, 32, 47, 34, 45, 45, 32, 29, 28, 29, 45, 60, 30, 51, 41, 41, 51, 32, 30, 41, 40, 39, 56, 35, 28, 38, 39, 27, 57, 38, 42, 35, 44, 60, 38, 60, 35, 44, 37, 36, 25, 27, 45, 44, 36, 37, 36, 36, 36, 36, 53, 33, 45, 36, 36, 34, 36, 33, 36, 27, 38, 36, 45, 36, 34, 36, 45, 36, 34, 34, 36, 36, 36, 36, 38, 36, 36, 36, 53, 31, 38, 45, 36, 36, 34, 34, 36, 36, 36, 33, 31, 53, 46, 45, 113L, 36, 36, 34, 36, 34, 36, 34, 32, 30, 32, 26, 33, 32, 32, 33, 32, 38, 30, 42, 39, 42, 30, 27, 39, 36, 45, 32, 35, 47, 32, 47, 37, 35, 28, 37, 30, 47, 31, 35, 35, 32, 32, 33, 28, 30, 32, 47, 31, 35, 42, 28, 47, 33, 31, 28, 33, 37, 28, 32, 35, 40, 28, 32, 32, 39, 35, 34, 31, 31, 35, 28, 28, 38, 42, 40, 32, 29, 28, 33, 31, 28, 37, 28, 28, 37, 40, 31, 35, 37, 31, 28, 32, 28, 31, 47, 37, 28, 28, 33, 35, 40, 28, 33, 29, 45, 43, 31, 81L, 34, 28, 26, 39, 34, 37, 35, 37, 59, 38, 39, 50, 34, 34, 31, 35, 43, 38, 38, 37, 28, 26, 28, 28, 37, 40, 33, 39, 41, 27, 34, 35, 26, 38, 29, 44, 50, 33, 34, 27, 33, 28, 35, 28, 29, 34, 33, 42, 51, 43, 44, 43, 49, 34, 43, 34, 36, 44, 45, 40, 50, 56, 36, 41, 37, 43, 26, 50, 39, 34, 48, 31, 50, 34, 32, 47, 32, 41, 37, 33, 40, 42, 42, 31, 33, 33, 37, 33, 39, 28, 37, 31, 33, 34, 31, 32, 35, 35, 40, 57, 41, 31, 41, 50, 45, 34, 35, 48, 29, 31, 33, 32, 35, 57, 27, 38, 34, 33, 31, 47, 39, 31, 30, 29, 38, 28, 33, 37, 32, 39, 44, 26, 38, 36, 36, 29, 42, 35, 29, 29, 26, 59, 31, 36, 28, 34, 38, 50, 32, 40, 34, 32, 59, 59, 30, 50, 29, 34, 32, 32, 35, 32, 35, 57, 38, 33, 34, 50, 43, 33, 38, 38, 31, 38, 30, 34, 37, 38, 30, 35, 25, 41, 41, 31, 31, 32, 32, 37, 26, 28, 40, 33, 25, 31, 43, 45, 38, 34, 35, 51, 42, 43, 38, 33, 38, 32, 35, 32, 43, 34, 36, 34, 50, 40, 34, 45, 56, 49, 36, 34, 43, 37, 38, 31, 45, 43, 37, 39, 47, 34, 34, 35, 45, 31, 34, 33, 31, 43, 40, 39, 34, 50, 38, 43, 34, 35, 31, 35, 34, 43, 40, 31, 34, 38, 37, 32, 34, 32, 39, 34, 31, 35, 38, 38, 31, 34, 31, 81L, 37, 38, 50, 34, 50, 28, 27, 45, 38, 32, 39, 43, 47, 47, 35, 37, 32, 35, 34, 43, 36, 34, 43, 39, 45, 50, 46, 32, 41, 35, 30, 39, 57, 50, 38, 34, 34, 60, 32, 50, 34, 43, 50, 34, 28, 34, 31, 57, 27, 31, 67, 34, 37, 37, 32, 29, 38, 43, 50, 43, 38, 34, 27, 40, 48, 34, 29, 38, 34, 36, 42, 41, 35, 37, 30, 50, 32, 34, 31, 32, 28, 38, 38, 32, 38, 38, 38, 38, 113L, 38, 25, 32, 29, 47, 32, 42, 32, 37, 29, 32, 41, 34, 38, 41, 41, 32, 38, 41, 34, 45, 41, 30, 38, 29, 38, 38, 53, 33, 27, 33, 35, 33, 30, 34, 32, 37, 31, 27, 45, 40, 35, 38, 45, 30, 39, 57, 42, 30, 31, 59, 36, 32, 33, 32, 47, 45, 39, 46, 39, 56, 36, 36, 34, 25, 29, 39, 47, 27, 41, 30, 39, 25, 28, 33, 30, 27, 29, 51, 45, 34, 41, 37, 43, 38, 33, 31, 58, 53, 40, 27, 47, 27, 37, 35, 43, 42, 59, 36, 62, 45, 43, 50, 41, 33, 53, 33, 37, 36, 45, 35, 40, 45, 39, 41, 30, 37, 38, 41, 36, 36, 31, 36, 30, 40, 53, 33, 40, 33, 45, 32, 35, 34, 34, 33, 53, 37, 45, 33, 59, 39, 46, 45, 49, 53, 40, 45, 53, 50, 52, 33, 36, 33, 38, 33, 30, 43, 34, 40, 42, 36, 25, 47, 30, 33, 40, 33, 45, 51, 53, 37, 38, 34, 29, 45, 30, 45, 45, 42, 42, 29, 59, 29, 36, 75L, 33, 46, 33, 41, 34, 43, 32, 45, 36, 56, 36, 46, 33, 50, 47, 34, 25, 50, 37, 34, 33, 40, 45, 53, 30, 44, 35, 30, 43, 31, 32, 113L, 36, 47, 30, 40, 59, 53, 33, 33, 27, 34, 41, 53, 27, 38, 40, 37, 45, 42, 45, 36, 47, 75L, 47, 43, 45, 56, 46, 47, 37, 31, 33, 40, 27, 45, 53, 43, 35, 33, 31, 30, 34, 45, 45, 29, 59, 36, 34, 36, 46, 49, 32, 34, 53, 35, 40, 27, 37, 37, 31, 39, 36, 36, 53, 47, 43, 25, 60, 30, 61, 29, 45, 45, 37, 34, 53, 40, 35, 45, 33, 49, 38, 27, 45, 42, 59, 30, 44, 31, 37, 35, 35, 43, 33, 35, 45, 29, 45, 45, 42, 75L, 34, 39, 47, 47, 46, 30, 32, 50, 34, 31, 36, 35, 34, 25, 36, 36, 47, 34, 37, 45, 28, 40, 33, 34, 53, 37, 48, 30, 37, 30, 65, 41, 36, 29, 36, 36, 29, 36, 29, 34, 34, 34, 34, 42, 40, 27, 32, 39, 47, 28, 28, 28, 41, 28, 33, 40, 32, 47, 41, 34, 28, 33, 39, 34, 31, 28, 44, 35, 47, 60, 75L, 60, 41, 36, 40, 38, 113L, 41, 34, 44, 34, 39, 30, 34, 28, 31, 37, 40, 27, 25, 26, 32, 27, 34, 34, 51, 32, 35, 37, 31, 35, 32, 32, 36, 32, 36, 32, 44, 34, 30, 29, 32, 32, 38, 27, 51, 33, 33, 32, 32, 45, 32, 44, 41, 28, 25, 113L, 25, 59, 38, 36, 57, 34, 34, 44, 34, 39, 51, 41, 35, 32, 30, 31, 44, 35, 32, 31, 53, 28, 32, 34, 81L, 25, 31, 25, 39, 38, 38, 32, 38, 26, 26, 31, 30, 35, 28, 35, 35, 45, 35, 28, 31, 34, 51, 25, 35, 34, 32, 45, 49, 34, 32, 38, 29, 27, 31, 36, 25, 31, 30, 27, 44, 51, 27, 34, 35, 37, 31, 37, 32, 25, 29, 32, 25, 34, 32, 25, 49, 33, 45, 49, 27, 37, 45, 30, 33, 28, 35, 46, 39, 37, 42, 31, 38, 38, 41, 36, 38, 35, 31, 49, 59, 40, 32, 35, 35, 42, 38, 32, 38, 35, 35, 42, 36, 48, 37, 33, 30, 31, 35, 38, 33, 40, 34, 37, 35, 28, 34, 38, 36, 115L, 39, 35, 40, 38, 42, 42, 48, 31, 42, 33, 49, 35, 54, 53, 33, 40, 39, 46, 36, 38, 35, 48, 41, 40, 34, 115L, 38, 40, 38, 43, 42, 48, 47, 47, 37, 44, 29, 27, 33, 31, 49, 35, 38, 49, 59, 33, 40, 32, 37, 38, 34, 35, 36, 42, 35, 36, 32, 30, 42, 49, 27, 35, 49, 31, 31, 31, 42, 33, 35, 40, 33, 35, 36, 28, 38, 38, 38, 45, 40, 35, 49, 31, 49, 35, 35, 54, 40, 32, 39, 38, 33, 34, 36, 35, 40, 32, 48, 42, 36, 37, 45, 42, 30, 75L, 42, 42, 33, 30, 38, 38, 36, 47, 47, 25, 42, 32, 42, 42, 36, 36, 36, 25, 38, 34, 34, 33, 40, 27, 27, 34, 41, 34, 34, 34, 41, 40, 33, 34, 34, 34, 33, 40, 27, 34, 34, 34, 33, 27, 27, 41, 27, 41, 27, 32, 33, 34, 33, 53, 31, 40, 42, 34, 38, 35, 33, 42, 40, 53, 66, 37, 31, 38, 35, 33, 50, 40, 31, 35, 33, 40, 42, 34, 39, 39, 35, 39, 28, 34, 49, 42, 27, 30, 32, 70L, 29, 31, 44, 39, 39, 60, 75L, 50, 32, 46, 42, 29, 38, 25, 26, 31, 46, 32, 43, 26, 43, 26, 43, 38, 32, 38, 60, 66, 39, 33, 39, 32, 31, 39, 33, 35, 57, 45, 57, 38, 45, 35, 35, 37, 66, 29, 43, 38, 42, 38, 38, 30, 60, 38, 45, 39, 60, 70L, 29, 34, 35, 50, 33, 45, 41, 30, 44, 57, 45, 34, 38, 39, 45, 35, 48, 39, 43, 32, 29, 34, 38, 39, 31, 32, 36, 41, 29, 37, 34, 41, 53, 60, 66, 31, 50, 50, 32, 60, 42, 56, 31, 33, 31, 27, 36, 39, 36, 42, 31, 27, 33, 29, 29, 42, 36, 33, 43, 36, 37, 36, 33, 44, 39, 36, 33, 38, 35, 26, 37, 30, 36, 31, 30, 40, 32, 34, 38, 33, 36, 33, 30, 26, 52, 35, 43, 39, 39, 30, 32, 30, 30, 28, 29, 27, 40, 43, 36, 39, 31, 36, 36, 40, 28, 34, 30, 35, 43, 34, 31, 36, 36, 38, 33, 59, 36, 66, 26, 66, 27, 31, 34, 33, 30, 33, 37, 43, 36, 40, 27, 34, 36, 40, 38, 42, 37, 54, 37, 26, 27, 33, 30, 29, 27, 34, 31, 36, 36, 39, 27, 30, 30, 40, 38, 34, 33, 29, 39, 31, 36, 25, 30, 30, 40, 36, 33, 27, 39, 33, 27, 29, 31, 30, 32, 40, 28, 29, 36, 39, 42, 36, 26, 33, 27, 40, 39, 31, 36, 43, 54, 34, 30, 40, 37, 36, 32, 38, 26, 34, 31, 36, 32, 35, 29, 37, 33, 34, 32, 39, 28, 25, 46, 28, 36, 25, 32, 45, 27, 32, 33, 39, 27, 26, 27, 51, 31, 37, 30, 33, 24, 32, 27, 37, 29, 27, 29, 26, 60, 30, 36, 29, 35, 28, 32, 27, 38, 30, 30, 27, 27, 26, 27, 28, 28, 29, 30, 28, 33, 29, 34, 35, 27, 36, 32, 32, 29, 37, 30, 38, 50, 34, 35, 31, 37, 28, 32, 30, 35, 43, 40, 47, 27, 33, 31, 32, 26, 31, 34, 50, 41, 34, 32, 30, 33, 30, 45, 40, 31, 53, 31, 57, 28, 37, 36, 28, 113L, 38, 31, 27, 31, 28, 31, 40, 34, 31, 45, 32, 25, 113L, 29, 31, 31, 34, 36, 50, 33, 37, 49, 28, 28, 28, 27, 28, 27, 32, 37, 25, 29, 34, 45, 34, 49, 45, 35, 38, 35, 27, 32, 37, 37, 29, 31, 30, 26, 28, 53, 34, 37, 26, 37, 30, 40, 41, 40, 34, 43, 31, 39, 35, 38, 47, 48, 38, 49, 49, 31, 34, 38, 34, 27, 36, 36, 26, 32, 26, 30, 27, 30, 34, 27, 46, 44, 28, 56, 34, 46, 28, 27, 28, 29, 31, 35, 33, 27, 40, 33, 32, 26, 32, 26, 30, 26, 31, 27, 58, 32, 32, 30, 28, 47, 34, 50, 30, 37, 39, 27, 36, 28, 35, 29, 27, 35, 43, 47, 32, 34, 47, 35, 29, 31, 41, 26, 37, 48, 29, 29, 34, 37, 32, 41, 29, 30, 39, 29, 25, 28, 28, 54, 32, 27, 27, 29, 32, 29, 37, 31, 33, 35, 37, 37, 29, 37, 26, 26, 38, 31, 60, 45, 31, 31, 43, 32, 37, 32, 34, 32, 33, 33, 34, 27, 31, 28, 33, 29, 34, 33, 33, 31, 28, 39, 34, 38, 42, 50, 31, 41, 32, 35, 39, 41, 43, 35, 29, 37, 29, 29, 41, 41, 36, 29, 29, 31, 27, 33, 32, 63, 32, 53, 39, 36, 38, 35, 113L, 32, 40, 31, 42, 29, 37, 38, 44, 43, 28, 31, 31, 28, 49, 33, 34, 33, 31, 37, 24, 33, 32, 30, 36, 53, 30, 31, 33, 42, 29, 40, 42, 35, 37, 33, 29, 28, 25, 32, 36, 31, 34, 29, 115L, 57, 38, 30, 38, 34, 37, 33, 34, 41, 32, 33, 32, 44, 45, 41, 48, 40, 35, 32, 38, 41, 35, 35, 51, 30, 29, 27, 30, 27, 32, 27, 56, 28, 35, 29, 27, 30, 30, 51, 48, 32, 32, 47, 35, 26, 35, 32, 38, 26, 35, 34, 28, 50, 27, 32, 28, 50, 37, 30, 49, 26, 37, 41, 27, 34, 29, 45, 31, 28, 27, 33, 45, 33, 29, 37, 26, 31, 36, 44, 30, 39, 32, 26, 36, 28, 43, 28, 47, 43, 31, 30, 45, 40, 34, 31, 29, 35, 45, 57, 30, 31, 41, 36, 48, 42, 33, 40, 33, 37, 42, 31, 38, 39, 27, 32, 40, 28, 34, 36, 55, 31, 33, 32, 37, 33, 30, 34, 30, 30, 27, 26, 45, 31, 45, 32, 27, 28, 38, 32, 29, 36, 41, 57, 30, 29, 33, 37, 33, 33, 39, 24, 32, 32, 32, 29, 32, 28, 30, 36, 111L, 29, 31, 56, 33, 25, 26, 27, 36, 38, 32, 43, 27, 29, 37, 30, 33, 32, 28, 26, 30, 29, 34, 35, 26, 29, 29, 50, 29, 33, 37, 25, 26, 34, 34, 28, 34, 28, 26, 26, 41, 29, 36, 59, 30, 45, 43, 32, 44, 26, 35, 30, 26, 31, 28, 34, 29, 25, 29, 27, 27, 37, 34, 58, 28, 52, 31, 35, 36, 28, 32, 41, 31, 26, 34, 30, 28, 26, 38, 33, 41, 27, 29, 38, 37, 43, 31, 38, 28, 51, 45, 31, 28, 47, 31, 29, 28, 29, 26, 29, 27, 34, 27, 27, 32, 37, 34, 60, 38, 34, 26, 26, 26, 31, 35, 34, 28, 33, 28, 57, 35, 39, 44, 37, 59, 28, 30, 34, 33, 37, 36, 30, 34, 34, 29, 32, 37, 32, 56, 74L, 33, 40, 42, 31, 34, 33, 36, 30, 48, 28, 36, 40, 32, 35, 30, 27, 29, 28, 36, 45, 45, 40, 34, 50, 39, 33, 39, 58, 33, 30, 27, 36, 41, 45, 31, 35, 53, 31, 32, 31, 40, 33, 29, 34, 40, 32, 37, 113L, 30, 33, 27, 30, 26, 31, 26, 29, 32, 29, 30, 35, 37, 53, 37, 31, 40, 45, 41, 34, 30, 32, 40, 41, 31, 48, 40, 35, 31, 41, 56, 34, 50, 26, 45, 25, 30, 33, 58, 30, 29, 35, 32, 44, 27, 33, 28, 37, 30, 30, 30, 29, 38, 31, 48, 38, 25, 35, 32, 24, 29, 30, 38, 32, 36, 41, 31, 27, 27, 29, 29, 27, 35, 28, 29, 35, 50, 32, 24, 28, 113L, 26, 50, 32, 34, 41, 34, 27, 27, 27, 29, 32, 35, 33, 34, 28, 31, 28, 34, 31, 34, 38, 33, 30, 26, 35, 26, 37, 43, 33, 29, 27, 32, 28, 27, 27, 27, 30, 28, 30, 32, 29, 30, 37, 41, 39, 41, 37, 26, 27, 27, 26, 40, 32, 26, 34, 27, 28, 31, 29, 31, 43, 37, 31, 57, 42, 28, 35, 33, 29, 58, 37, 32, 28, 42, 38, 39, 33, 45, 35, 37, 34, 34, 33, 32, 30, 40, 33, 38, 37, 38, 42, 29, 35, 32, 31, 47, 30, 35, 30, 40, 46, 28, 56, 27, 43, 42, 48, 37, 113L, 33, 34, 30, 34, 34, 36, 29, 27, 32, 45, 34, 30, 39, 37, 34, 33, 53, 32, 31, 38, 33, 27, 57, 35, 29, 29, 35, 31, 34, 115L, 38, 29, 38, 29, 30, 41, 30, 38, 43, 36, 34, 29, 33, 30, 31, 32, 34, 40, 35, 37, 34, 32, 33, 32, 30, 43, 26, 30, 32, 27, 35, 35, 27, 31, 31, 36, 33, 32, 34, 32, 24, 49, 26, 33, 35, 29, 34, 35, 26, 32, 29, 28, 47, 56, 34, 35, 26, 113L, 30, 27, 81L, 26, 35, 41, 33, 33, 28, 47, 25, 32, 32, 57, 28, 33, 30, 43, 35, 31, 46, 36, 50, 33, 47, 27, 45, 27, 28, 34, 26, 31, 28, 31, 39, 57, 29, 33, 60, 33, 39, 28, 27, 28, 45, 29, 37, 37, 35, 31, 50, 30, 31, 38, 36, 32, 43, 39, 35, 42, 29, 40, 36, 37, 39, 29, 31, 40, 39, 33, 32, 33, 40, 32, 39, 43, 34, 30, 34, 40, 47, 42, 33, 31, 45, 28, 45, 26, 26, 27, 37, 28, 29, 40, 40, 53, 45, 29, 33, 32, 113L, 41, 33, 34, 29, 37, 31, 36, 57, 30, 39, 29, 30, 30, 35, 33, 32, 29, 50, 32, 30, 25, 39, 29, 29, 32, 37, 30, 28, 32, 43, 28, 35, 27, 47, 28, 35, 28, 33, 37, 26, 34, 27, 26, 52, 43, 36, 37, 27, 69L, 27, 29, 29, 29, 31, 28, 32, 41, 29, 26, 29, 23, 30, 27, 27, 35, 41, 31, 37, 48, 31, 29, 45, 26, 38, 57, 36, 33, 38, 40, 33, 35, 44, 32, 32, 34, 31, 28, 35, 75L, 28, 33, 28, 27, 30, 32, 37, 28, 27, 39, 32, 29, 42, 27, 27, 27, 70L, 41, 29, 32, 35, 29, 52, 34, 26, 30, 29, 26, 30, 26, 28, 26, 31, 39, 38, 29, 50, 31, 37, 26, 29, 28, 31, 34, 32, 32, 50, 34, 37, 43, 32, 36, 57, 41, 28, 29, 31, 28, 29, 31, 26, 28, 30, 40, 42, 27, 30, 37, 38, 27, 40, 46, 31, 29, 28, 29, 27, 33, 27, 27, 28, 42, 27, 34, 39, 26, 24, 25, 30, 36, 29, 29, 31, 36, 33, 34, 51, 32, 30, 44, 43, 28, 47, 29, 31, 34, 30, 32, 32, 38, 37, 30, 26, 41, 32, 59, 36, 34, 30, 27, 30, 33, 34, 26, 33, 48, 45, 37, 31, 33, 32, 30, 58, 39, 27, 28, 39, 31, 30, 56, 28, 35, 31, 45, 37, 31, 32, 40, 29, 32, 30, 32, 41, 28, 31, 29, 36, 35, 28, 39, 28, 27, 28, 44, 33, 39, 34, 29, 30, 35, 35, 50, 33, 35, 33, 30, 53, 31, 36, 34, 37, 42, 40, 29, 42, 36, 34, 29, 35, 39, 27, 28, 38, 43, 27, 35, 25, 27, 34, 35, 36, 29, 44, 44, 39, 31, 30, 53, 30, 29, 38, 29, 35, 33, 35, 37, 33, 29, 47, 40, 36, 33, 26, 30, 28, 29, 36, 31, 33, 50, 45, 30, 38, 113L, 31, 36, 41, 49, 33, 38, 33, 38, 33, 43, 43, 29, 28, 37, 35, 39, 34, 31, 37, 47, 34, 34, 34, 32, 40, 37, 32, 34, 36, 29, 37, 29, 33, 57, 40, 38, 35, 42, 41, 29, 61, 37, 39, 32, 33, 32, 31, 42, 39, 38, 33, 48, 35, 40, 45, 34, 32, 47, 30, 27, 30, 38, 33, 41, 45, 38, 41, 35, 38, 40, 32, 40, 42, 43, 34, 48, 38, 31, 41, 31, 49, 35, 36, 27, 34, 28, 32, 27, 44, 31, 26, 26, 34, 36, 37, 24, 35, 26, 32, 29, 28, 29, 33, 25, 32, 31, 34, 26, 27, 40, 27, 32, 26, 30, 27, 25, 32, 32, 28, 39, 34, 33, 31, 44, 28, 31, 30, 29, 32, 37, 41, 31, 29, 35, 29, 38, 45, 33, 58, 24, 56, 39, 31, 27, 35, 25, 28, 45, 47, 25, 30, 60, 46, 28, 27, 44, 32, 30, 25, 30, 27, 26, 38, 28, 24, 54, 45, 35, 27, 25, 45, 66, 37, 34, 26, 30, 29, 38, 46, 51, 27, 30, 26, 25, 36, 31, 37, 35, 25, 34, 31, 34, 40, 29, 35, 27, 26, 29, 27, 29, 31, 44, 32, 29, 29, 26, 27, 26, 32, 25, 31, 27, 29, 36, 25, 28, 34, 34, 31, 31, 39, 38, 34, 30, 26, 25, 33, 37, 30, 50, 41, 27, 35, 34, 28, 29, 26, 28, 29, 29, 32, 51, 35, 32, 34, 30, 40, 29, 35, 26, 31, 30, 40, 40, 47, 41, 32, 27, 30, 50, 26, 27, 26, 32, 36, 32, 29, 35, 27, 27, 32, 27, 33, 35, 32, 33, 35, 30, 37, 24, 26, 50, 30, 29, 36, 25, 34, 37, 39, 32, 47, 34, 30, 34, 27, 33, 37, 50, 32, 30, 26, 33, 31, 53, 33, 40, 28, 39, 37, 40, 115L, 113L, 36, 31, 33, 33, 38, 39, 115L, 41, 35, 37, 37, 34, 34, 29, 40, 36, 29, 33, 36, 33, 26, 36, 30, 35, 53, 31, 30, 32, 41, 39, 30, 38, 35, 31, 31, 28, 29, 32, 29, 37, 45, 35, 34, 32, 34, 29, 33, 33, 40, 34, 32, 30, 31, 32, 35, 33, 45, 31, 30, 29, 40, 32, 32, 38, 41, 40, 30, 38, 48, 36, 31, 50, 36, 31, 35, 48, 41, 43, 40, 45, 40, 35, 51, 38, 44, 34, 36, 34, 30, 44, 40, 30, 35, 29, 32, 33, 27, 38, 24, 31, 29, 48, 36, 35, 37, 30, 34, 61, 29, 38, 40, 26, 27, 31, 36, 31, 32, 37, 47, 32, 25, 34, 53, 26, 53, 46, 28, 34, 49, 27, 29, 32, 56, 26, 32, 26, 32, 35, 47, 53, 31, 34, 36, 60, 43, 29, 33, 34, 42, 26, 51, 26, 31, 51, 37, 33, 28, 26, 30, 30, 38, 58, 33, 32, 25, 34, 54, 31, 41, 53, 31, 32, 31, 29, 31, 27, 37, 50, 28, 26, 29, 31, 29, 36, 36, 31, 26, 30, 32, 28, 27, 39, 29, 28, 35, 38, 43, 32, 70L, 45, 43, 28, 31, 26, 63, 31, 34, 38, 35, 37, 28, 39, 36, 49, 57, 27, 28, 40, 39, 34, 27, 35, 37, 31, 27, 31, 42, 45, 29, 30, 33, 43, 30, 35, 33, 28, 38, 26, 39, 47, 29, 39, 30, 30, 26, 32, 30, 36, 27, 36, 39, 31, 34, 38, 29, 27, 32, 37, 28, 56, 36, 40, 31, 27, 32, 35, 43, 42, 35, 55, 50, 40, 42, 34, 57, 43, 29, 34, 47, 28, 39, 39, 29, 37, 41, 29, 45, 47, 26, 32, 33, 29, 30, 27, 37, 33, 58, 27, 29, 26, 29, 27, 30, 32, 34, 30, 25, 45, 37, 34, 38, 33, 28, 35, 39, 32, 28, 46, 27, 28, 43, 29, 32, 27, 34, 29, 29, 41, 27, 23, 31, 36, 29, 31, 60, 47, 31, 28, 32, 42, 41, 31, 57, 30, 39, 32, 31, 33, 34, 34, 30, 32, 35, 37, 40, 37, 34, 36, 27, 30, 34, 26, 54, 36, 34, 26, 38, 29, 30, 29, 30, 33, 32, 33, 33, 28, 32, 28, 28, 26, 30, 26, 37, 40, 27, 32, 37, 53, 34, 28, 36, 27, 31, 30, 29, 40, 31, 47, 28, 34, 29, 34, 29, 45, 45, 57, 59, 30, 32, 37, 38, 29, 36, 115L, 37, 49, 40, 38, 32, 31, 31, 37, 34, 30, 50, 31, 49, 43, 38, 32, 40, 41, 37, 34, 27, 34, 31, 42, 38, 33, 29, 38, 30, 48, 37, 32, 34, 33, 31, 46, 32, 36, 42, 45, 33, 29, 38, 37, 29, 33, 27, 34, 113L, 29, 40, 37, 33, 42, 30, 31, 40, 37, 43, 61, 32, 30, 30, 33, 31, 37, 33, 34, 29, 29, 36, 31, 30, 47, 45, 34, 33, 36, 37, 39, 39, 35, 59, 29, 29, 31, 45, 36, 115L, 31, 53, 38, 57, 33, 26, 41, 35, 49, 36, 32, 31, 33, 30, 30, 37, 31, 30, 32, 32, 31, 31, 32, 45, 43, 32, 32, 42, 30, 30, 33, 40, 34, 32, 41, 41, 46, 34, 45, 48, 34, 38, 42, 41, 41, 32, 34, 47, 40, 29, 33, 50, 31, 49, 29, 26, 30, 26, 44, 36, 44, 27, 30, 46, 44, 29, 26, 31, 31, 25, 24, 25, 29, 26, 45, 33, 29, 39, 27, 28, 39, 58, 25, 41, 29, 29, 24, 41, 44, 25, 28, 25, 28, 27, 27, 27, 26, 35, 56, 39, 26, 35, 35, 35, 35, 36, 51, 31, 26, 60, 29, 30, 31, 38, 33, 54, 32, 31, 31, 34, 34, 27, 28, 37, 51, 34, 29, 54, 53, 36, 37, 46, 60, 51, 25, 50, 26, 26, 41, 29, 29, 32, 26, 30, 23, 29, 28, 33, 29, 26, 29, 32, 30, 33, 35, 32, 31, 36, 38, 28, 40, 38, 33, 47, 46, 31, 36, 40, 29, 35, 33, 28, 32, 35, 38, 32, 37, 32, 43, 29, 27, 33, 36, 70L, 57, 31, 31, 49, 33, 30, 28, 39, 36, 30, 27, 37, 31, 37, 33, 33, 42, 40, 34, 29, 35, 37, 30, 29, 27, 26, 29, 28, 27, 33, 34, 30, 37, 30, 34, 48, 47, 29, 32, 32, 28, 39, 27, 30, 39, 63, 38, 32, 36, 39, 35, 43, 30, 29, 32, 26, 38, 29, 36, 29, 32, 29, 35, 28, 45, 42, 30, 38, 36, 33, 24, 34, 26, 29, 31, 27, 36, 30, 32, 29, 40, 31, 32, 53, 35, 37, 49, 37, 57, 37, 35, 29, 40, 30, 35, 37, 40, 28, 29, 31, 31, 39, 29, 29, 31, 36, 57, 37, 30, 28, 30, 42, 34, 38, 44, 34, 32, 31, 40, 45, 29, 31, 41, 32, 40, 35, 30, 32, 30, 45, 40, 43, 41, 32, 31, 48, 41, 34, 34, 44, 31, 41, 34, 31, 38, 27, 36, 31, 33, 34, 37, 31, 32, 29, 35, 36, 53, 56, 33, 30, 31, 32, 33, 34, 37, 56, 40, 35, 60, 58, 27, 34, 27, 32, 27, 32, 25, 31, 29, 34, 36, 38, 28, 58, 57, 32, 50, 32, 28, 39, 36, 54, 37, 28, 28, 53, 41, 37, 26, 26, 26, 60, 32, 57, 31, 28, 39, 40, 32, 27, 39, 29, 44, 47, 30, 34, 39, 39, 38, 40, 32, 27, 39, 31, 44, 43, 30, 41, 39, 41, 43, 43, 45, 29, 28, 27, 33, 56, 42, 29, 38, 35, 32, 28, 29, 42, 35, 36, 31, 29, 30, 37, 45, 32, 42, 32, 41, 59, 34, 31, 34, 30, 25, 34, 42, 37, 32, 30, 49, 40, 41, 31, 30, 37, 31, 33, 30, 32, 41, 48, 32, 30, 41, 43, 40, 34, 31, 34, 30, 40, 45, 47, 36, 26, 30, 31, 35, 29, 37, 56, 32, 40, 40, 27, 32, 40, 45, 32, 37, 28, 33, 42, 35, 32, 38, 29, 45, 30, 32, 39, 34, 31, 33, 27, 33, 53, 38, 49, 36, 30, 40, 32, 32, 34, 33, 42, 37, 57, 33, 37, 39, 37, 29, 40, 36, 37, 27, 34, 25, 48, 44, 25, 36, 26, 25, 30, 33, 25, 27, 47, 33, 25, 37, 27, 58, 33, 34, 33, 25, 27, 34, 30, 28, 32, 28, 32, 46, 56, 31, 26, 28, 38, 28, 32, 30, 34, 38, 32, 35, 29, 24, 31, 27, 34, 30, 27, 40, 29, 34, 27, 40, 37, 35, 37, 26, 34, 26, 30, 30, 111L, 35, 29, 32, 26, 29, 36, 33, 26, 31, 35, 60, 28, 28, 43, 36, 31, 32, 37, 24, 32, 49, 25, 55, 31, 23, 30, 57, 28, 32, 26, 27, 58, 29, 54, 30, 28, 34, 26, 28, 31, 38, 34, 53, 32, 38, 28, 45, 29, 33, 29, 50, 30, 48, 41, 28, 29, 29, 26, 27, 31, 33, 28, 27, 38, 40, 34, 26, 29, 27, 37, 41, 38, 32, 38, 32, 47, 33, 32, 28, 34, 57, 32, 35, 30, 47, 28, 29, 36, 31, 31, 28, 31, 31, 27, 32, 32, 32, 36, 30, 34, 37, 45, 36, 33, 34, 43, 37, 34, 52, 46, 42, 34, 28, 43, 27, 60, 45, 30, 31, 63, 50, 26, 30, 35, 30, 41, 33, 45, 31, 37, 33, 35, 35, 28, 32, 33, 32, 40, 36, 31, 59, 32, 30, 32, 48, 45, 34, 113L, 34, 37, 32, 27, 40, 30, 33, 40, 30, 36, 115L, 38, 33, 34, 50, 34, 41, 62, 31, 32, 38, 37, 35, 35, 45, 32, 43, 37, 39, 34, 38, 36, 43, 44, 49, 33, 40, 34, 40, 57, 27, 37, 32, 31, 40, 43, 42, 41, 36, 27, 37, 27, 37, 42, 113L, 37, 44, 28, 32, 28, 29, 31, 33, 37, 52, 29, 41, 40, 32, 47, 34, 26, 36, 44, 34, 30, 28, 29, 32, 40, 27, 37, 28, 28, 33, 32, 50, 36, 27, 57, 26, 31, 29, 42, 31, 53, 28, 39, 28, 113L, 60, 27, 40, 32, 27, 32, 40, 31, 34, 32, 39, 29, 25, 32, 38, 33, 32, 34, 33, 28, 32, 26, 27, 39, 32, 41, 36, 34, 33, 37, 40, 57, 28, 31, 28, 29, 31, 27, 29, 49, 39, 37, 28, 30, 27, 26, 33, 32, 30, 44, 30, 35, 45, 37, 27, 32, 39, 29, 44, 31, 34, 40, 35, 35, 47, 28, 33, 42, 34, 33, 27, 30, 35, 40, 42, 31, 29, 36, 37, 33, 31, 34, 36, 31, 30, 53, 30, 30, 41, 34, 34, 35, 31, 49, 59, 45, 38, 32, 43, 44, 38, 57, 45, 41, 30, 32, 42, 31, 37, 34, 32, 40, 40, 31, 30, 33, 32, 113L, 32, 40, 48, 41, 26, 24, 31, 29, 30, 38, 41, 40, 34, 47, 32, 35, 31, 48, 32, 43, 45, 34, 50, 35, 38, 48, 51, 41, 44, 28, 49, 34, 34, 26, 32, 37, 61, 28, 28, 25, 36, 56, 41, 38, 28, 35, 27, 48, 24, 34, 37, 43, 40, 30, 29, 28, 44, 46, 23, 26, 30, 31, 29, 26, 29, 30, 28, 39, 25, 26, 58, 34, 30, 38, 26, 34, 29, 37, 56, 29, 34, 24, 29, 39, 57, 31, 25, 38, 35, 45, 26, 27, 26, 32, 34, 51, 35, 37, 30, 47, 32, 35, 38, 32, 51, 28, 24, 26, 26, 51, 29, 34, 46, 28, 29, 38, 38, 38, 27, 34, 28, 54, 32, 28, 33, 26, 41, 26, 25, 29, 50, 54, 28, 27, 31, 26, 44, 26, 29, 29, 35, 26, 40, 31, 29, 32, 32, 31, 26, 70L, 30, 29, 31, 29, 31, 29, 36, 36, 35, 31, 32, 31, 28, 35, 57, 34, 39, 36, 32, 45, 32, 31, 48, 32, 39, 40, 28, 30, 28, 27, 37, 31, 45, 31, 42, 33, 59, 25, 26, 34, 30, 29, 52, 30, 47, 34, 45, 33, 49, 31, 41, 37, 29, 32, 30, 36, 36, 34, 63, 38, 35, 34, 25, 27, 40, 33, 37, 39, 30, 34, 37, 32, 43, 29, 36, 41, 59, 36, 40, 31, 28, 29, 36, 53, 29, 47, 31, 42, 34, 36, 26, 30, 30, 113L, 27, 35, 40, 34, 41, 32, 34, 31, 31, 32, 32, 26, 34, 39, 27, 28, 27, 40, 37, 113L, 40, 53, 40, 35, 41, 27, 30, 35, 41, 26, 29, 34, 39, 35, 32, 30, 35, 25, 35, 28, 31, 40, 34, 34, 30, 43, 28, 34, 26, 53, 40, 41, 38, 37, 34, 31, 31, 113L, 30, 28, 29, 30, 30, 44, 38, 31, 28, 28, 33, 30, 36, 26, 35, 26, 28, 27, 29, 58, 33, 44, 34, 36, 26, 29, 35, 28, 32, 34, 54, 27, 31, 29, 50, 31, 27, 27, 36, 27, 28, 48, 27, 41, 30, 33, 26, 39, 28, 37, 37, 31, 29, 29, 34, 38, 31, 32, 47, 33, 33, 57, 38, 29, 26, 40, 35, 50, 31, 34, 32, 59, 36, 27, 37, 35, 27, 45, 37, 37, 38, 37, 60, 39, 32, 33, 39, 40, 31, 33, 32, 42, 31, 27, 31, 40, 30, 29, 33, 30, 36, 32, 113L, 29, 30, 30, 29, 38, 29, 38, 40, 42, 29, 45, 32, 32, 36, 31, 39, 29, 42, 32, 35, 36, 54, 31, 33, 31, 34, 34, 32, 37, 39, 31, 38, 53, 28, 45, 31, 36, 31, 40, 39, 30, 37, 34, 29, 33, 38, 45, 40, 57, 35, 44, 34, 41, 28, 45, 33, 35, 43, 29, 32, 36, 34, 38, 32, 38, 38, 38, 49, 41, 47, 40, 38, 34, 30, 26, 32, 27, 37, 26, 33, 31, 27, 41, 32, 34, 29, 29, 30, 29, 34, 40, 45, 31, 34, 39, 33, 32, 28, 32, 29, 30, 30, 41, 31, 27, 35, 40, 37, 30, 31, 33, 40, 28, 30, 38, 39, 34, 34, 31, 39, 42, 30, 34, 59, 42, 33, 30, 33, 37, 28, 36, 38, 45, 35, 32, 31, 33, 47, 37, 40, 33, 33, 37, 35, 37, 32, 28, 32, 29, 33, 46, 26, 30, 29, 28, 32, 29, 39, 34, 32, 27, 36, 40, 32, 26, 33, 27, 113L, 45, 29, 31, 42, 29, 29, 32, 38, 32, 28, 35, 36, 31, 34, 29, 42, 32, 29, 40, 25, 32, 36, 32, 50, 34, 35, 39, 31, 28, 38, 33, 29, 27, 35, 36, 31, 38, 30, 53, 42, 31, 35, 113L, 29, 27, 26, 37, 49, 59, 33, 37, 43, 30, 44, 38, 43, 35, 31, 48, 29, 33, 29, 33, 33, 39, 31, 38, 29, 33, 25, 44, 29, 37, 38, 33, 53, 41, 66, 31, 34, 37, 34, 29, 31, 32, 40, 36, 39, 46, 30, 42, 36, 30, 31, 24, 25, 35, 33, 29, 29, 38, 38, 34, 31, 59, 50, 45, 30, 29, 36, 35, 57, 34, 32, 43, 48, 30, 38, 38, 33, 41, 43, 115L, 56, 37, 50, 34, 31, 37, 34, 39, 40, 30, 33, 34, 35, 30, 33, 39, 28, 31, 60, 33, 37, 37, 29, 32, 31, 27, 38, 111L, 29, 34, 33, 28, 25, 34, 29, 32, 28, 27, 25, 29, 32, 37, 26, 34, 37, 35, 25, 26, 33, 27, 29, 37, 36, 27, 25, 46, 57, 30, 32, 44, 28, 30, 28, 24, 38, 41, 36, 35, 40, 26, 37, 33, 25, 32, 29, 30, 35, 30, 34, 32, 27, 32, 44, 30, 28, 33, 50, 34, 34, 41, 29, 37, 26, 38, 30, 50, 30, 31, 27, 30, 26, 30, 27, 35, 28, 35, 25, 25, 35, 29, 32, 30, 33, 25, 33, 58, 32, 29, 32, 35, 30, 37, 36, 35, 26, 35, 32, 29, 32, 41, 34, 28, 27, 38, 38, 36, 29, 28, 28, 27, 45, 30, 35, 33, 26, 28, 28, 41, 43, 28, 29, 39, 27, 52, 29, 29, 24, 34, 31, 31, 32, 26, 36, 26, 30, 35, 32, 27, 54, 41, 42, 32, 29, 31, 26, 52, 38, 32, 32, 35, 30, 33, 29, 31, 35, 28, 28, 32, 60, 54, 32, 40, 26, 27, 29, 58, 44, 32, 57, 28, 29, 28, 52, 43, 29, 28, 33, 48, 27, 35, 37, 37, 32, 40, 35, 26, 37, 62, 33, 60, 36, 26, 29, 34, 28, 24, 35, 44, 39, 32, 30, 36, 27, 24, 37, 32, 27, 26, 31, 31, 29, 31, 58, 27, 46, 30, 44, 50, 26, 28, 29, 36, 47, 26, 30, 27, 33, 27, 26, 29, 25, 25, 28, 32, 35, 25, 24, 57, 37, 31, 45, 27, 32, 29, 34, 56, 36, 37, 33, 26, 26, 38, 27, 34, 32, 28, 32, 38, 33, 32, 38, 29, 29, 41, 28, 37, 49, 27, 38, 27, 38, 27, 34, 25, 39, 29, 28, 32, 54, 47, 31, 41, 29, 34, 34, 29, 41, 36, 29, 27, 28, 26, 26, 32, 26, 30, 38, 31, 29, 31, 33, 37, 36, 31, 26, 33, 28, 28, 60, 34, 31, 37, 37, 30, 57, 32, 39, 35, 37, 32, 31, 33, 30, 31, 27, 27, 31, 32, 31, 33, 29, 34, 41, 35, 37, 30, 29, 29, 28, 38, 35, 28, 38, 57, 32, 37, 34, 37, 36, 34, 33, 51, 39, 34, 32, 45, 42, 43, 37, 32, 37, 39, 40, 26, 47, 34, 35, 39, 34, 29, 34, 31, 36, 36, 37, 34, 49, 43, 41, 45, 35, 33, 36, 49, 26, 35, 40, 60, 35, 36, 37, 37, 34, 35, 34, 31, 49, 27, 35, 36, 52, 34, 26, 34, 42, 29, 34, 25, 32, 26, 42, 29, 36, 45, 39, 37, 30, 34, 35, 60, 41, 38, 41, 25, 43, 26, 42, 30, 45, 30, 48, 34, 29, 34, 29, 43, 33, 34, 29, 29, 41, 34, 41, 41, 45, 29, 30, 32, 41, 34, 28, 31, 28, 31, 33, 44, 40, 50, 42, 35, 39, 39, 41, 33, 65, 38, 50, 33, 70L, 37, 34, 41, 42, 35, 38, 31, 34, 29, 35, 36, 53, 29, 45, 43, 29, 31, 42, 41, 31, 70L, 43, 34, 34, 35, 38, 38, 42, 33, 34, 29, 32, 28, 50, 34, 43, 41, 33, 32, 29, 35, 46, 29, 39, 31, 41, 30, 30, 39, 36, 34, 33, 31, 38, 37, 26, 29, 30, 37, 29, 39, 41, 30, 50, 31, 35, 39, 43, 34, 43, 31, 33, 39, 58, 38, 30, 29, 41, 32, 30, 29, 32, 45, 34, 70L, 39, 36, 34, 31, 32, 33, 34, 38, 35, 34, 33, 58, 29, 35, 36, 28, 38, 40, 33, 34, 50, 30, 35, 31, 29, 46, 40, 34, 32, 29, 28, 27, 32, 34, 30, 32, 53, 31, 70L, 34, 34, 70L, 35, 34, 34, 53, 31, 34, 42, 39, 38, 70L, 59, 38, 41, 34, 50, 32, 34, 58, 32, 31, 70L, 39, 30, 29, 30, 30, 38, 31, 30, 36, 34, 34, 30, 33, 29, 38, 32, 49, 57, 34, 39, 50, 46, 30, 39, 57, 26, 36, 30, 29, 32, 34, 34, 45, 42, 35, 37, 30, 28, 36, 42, 37, 31, 40, 35, 31, 33, 32, 32, 39, 47, 35, 29, 39, 32, 31, 42, 31, 52, 32, 30, 33, 27, 31, 43, 38, 34, 29, 42, 32, 30, 39, 34, 70L, 40, 35, 38, 41, 50, 38, 42, 38, 31, 28, 31, 32, 40, 38, 37, 43, 58, 66, 34, 33, 34, 41, 46, 38, 35, 34, 34, 29, 34, 28, 32, 30, 36, 38, 30, 35, 115L, 34, 35, 31, 30, 40, 34, 42, 50, 33, 32, 30, 32, 37, 31, 42, 31, 34, 45, 41, 45, 32, 44, 33, 32, 31, 58, 39, 49, 50, 39, 29, 46, 34, 33, 39, 34, 41, 36, 34, 31, 70L, 41, 31, 31, 33, 34, 34, 32, 33, 27, 30, 43, 37, 36, 28, 58, 28, 34, 39, 34, 50, 58, 60, 33, 34, 70L, 33, 41, 42, 38, 34, 38, 33, 34, 25, 30, 37, 26, 34, 36, 44, 31, 49, 41, 34, 39, 31, 36, 43, 31, 30, 28, 43, 27, 38, 40, 32, 75L, 39, 75L, 29, 30, 29, 35, 57, 28, 28, 36, 33, 39, 38, 39, 34, 32, 32, 29, 27, 29, 41, 29, 29, 43, 28, 50, 32, 47, 28, 34, 42, 47, 45, 39, 37, 35, 32, 40, 59, 30, 37, 38, 35, 29, 34, 42, 32, 39, 33, 43, 45, 42, 38, 36, 48, 40, 37, 33, 35, 52, 29, 46, 31, 44, 51, 54, 56, 34, 34, 41, 47, 42, 25, 25, 31, 28, 40, 33, 34, 38, 32, 47, 29, 41, 37, 34, 41, 29, 32, 29, 41, 34, 38, 38, 29, 40, 29, 42, 53, 49, 40, 42, 47, 39, 59, 28, 49, 33, 35, 51, 38, 36, 37, 38, 33, 41, 34, 54, 39, 32, 47, 41, 38, 31, 58, 34, 38, 47, 60, 39, 33, 32, 45, 34, 40, 32, 36, 29, 47, 38, 45, 23, 48, 30, 27, 29, 50, 38, 26, 33, 28, 39, 30, 37, 29, 47, 26, 41, 31, 32, 35, 40, 38, 45, 26, 34, 66, 29, 52, 31, 50, 31, 38, 35, 41, 30, 48, 45, 28, 27, 28, 29, 31, 32, 32, 40, 29, 33, 29, 39, 34, 34, 25, 52, 42, 31, 35, 41, 53, 29, 29, 63, 75L, 52, 39, 39, 29, 43, 34, 42, 28, 59, 35, 39, 35, 35, 35, 35, 32, 33, 70L, 38, 32, 34, 40, 41, 29, 51, 43, 49, 32, 33, 115L, 40, 45, 45, 28, 32, 47, 37, 39, 48, 46, 41, 36, 37, 35, 36, 56, 34, 54, 37, 41, 29, 31, 31, 30, 25, 34, 57, 25, 30, 32, 27, 47, 27, 23, 38, 38, 41, 29, 38, 42, 33, 30, 45, 45, 45, 45, 36, 42, 42, 36, 42, 49, 49, 36, 33, 36, 32, 36, 44, 34, 33, 35, 32, 60, 26, 31, 30, 29, 28, 37, 30, 41, 33, 38, 27, 36, 31, 33, 36, 45, 37, 34, 37, 36, 37, 41, 33, 45, 27, 36, 50, 60, 34, 30, 38, 36, 56, 36, 36, 32, 43, 37, 31, 45, 34, 33, 33, 51, 31, 45, 38, 31, 27, 37, 45, 60, 43, 41, 36, 45, 36, 30, 35, 31, 32, 43, 32, 37, 37, 56, 36, 33, 36, 27, 36, 36, 33, 36, 49, 44, 29, 41, 41, 39, 39, 38, 41, 37, 50, 39, 39, 33, 36, 28, 39, 29, 40, 36, 42, 31, 32, 29, 42, 32, 39, 28, 25, 42, 32, 28, 43, 39, 32, 35, 33, 32, 39, 32, 30, 44, 49, 36, 41, 31, 31, 29, 45, 28, 26, 32, 39, 36, 34, 28, 44, 39, 32, 35, 31, 32, 29, 28, 39, 42, 45, 34, 36, 35, 31, 37, 42, 28, 39, 28, 32, 44, 49, 52, 36, 36, 28, 47, 34, 29, 35, 39, 42, 42, 70L, 28, 28, 28, 36, 44, 40, 30, 29, 28, 28, 42, 35, 38, 28, 39, 32, 59, 31, 34, 37, 38, 29, 30, 36, 37, 36, 37, 28, 36, 38, 35, 30, 33, 44, 43, 31, 35, 59, 27, 28, 33, 45, 50, 31, 58, 31, 32, 38, 31, 42, 47, 39, 115L, 37, 29, 34, 32, 42, 34, 40, 34, 32, 32, 32, 41, 38, 43, 33, 31, 41, 26, 30, 33, 36, 30, 41, 32, 41, 30, 29, 32, 36, 29, 41, 38, 39, 43, 31, 41, 35, 35, 34, 40, 43, 62, 34, 47, 35, 45, 32, 29, 49, 42, 31, 40, 40, 41, 38, 50, 44, 34, 36, 34, 38, 29, 28, 29, 34, 34, 31, 33, 36, 29, 32, 38, 33, 28, 28, 41, 36, 28, 37, 26, 34, 38, 38, 51, 26, 32, 38, 37, 53, 34, 59, 42, 51, 34, 26, 41, 26, 35, 32, 38, 31, 43, 53, 42, 45, 51, 59, 51, 45, 38, 43, 36, 55, 38, 53, 51, 59, 45, 33, 29, 29, 47, 32, 42, 29, 30, 25, 33, 37, 39, 46, 39, 38, 31, 47, 34, 50, 39, 49, 52, 60, 31, 38, 42, 29, 47, 31, 46, 47, 39, 38, 31, 46, 38, 31, 30, 30, 47, 30, 28, 48, 50, 27, 39, 27, 49, 46, 27, 31, 52, 32, 60, 60, 39, 47, 46, 29, 31, 46, 37, 31, 27, 39, 32, 32, 31, 46, 30, 41, 34, 38, 28, 34, 51, 41, 39, 32, 38, 32, 113L, 60, 29, 50, 69L, 113L, 28, 47, 28, 47, 47, 47, 47, 47, 54, 33, 45, 37, 59, 42, 38, 33, 33, 47, 32, 56, 34, 32, 33, 47, 31, 45, 45, 56, 30, 40, 47, 53, 33, 36, 33, 26, 28, 56, 28, 33, 37, 32, 60, 38, 47, 32, 40, 47, 38, 115L, 39, 53, 38, 35, 25, 36, 41, 38, 41, 56, 34, 46, 36, 29, 33, 29, 53, 31, 113L, 33, 32, 51, 37, 46, 40, 33, 30, 31, 45, 56, 29, 34, 31, 33, 60, 25, 29, 35, 38, 43, 42, 39, 32, 59, 30, 54, 33, 36, 38, 31, 30, 39, 38, 33, 53, 39, 33, 45, 56, 46, 32, 33, 29, 36, 28, 32, 29, 38, 56, 30, 41, 31, 32, 32, 28, 35, 47, 45, 31, 28, 40, 32, 35, 42, 26, 26, 25, 26, 26, 26, 25, 26, 32, 25, 26, 25, 29, 32, 26, 29, 32, 26, 25, 36, 31, 26, 31, 41, 26, 30, 50, 26, 43, 41, 27, 25, 28, 43, 35, 45, 60, 34, 33, 34, 42, 55, 34, 60, 37, 27, 27, 38, 41, 34, 40, 113L, 29, 30, 28, 47, 29, 25, 39, 29, 32, 43, 43, 37, 38, 35, 34, 52, 27, 50, 32, 29, 39, 38, 28, 32, 31, 59, 38, 29, 27, 38, 38, 38, 28, 37, 29, 30, 42, 32, 40, 36, 32, 59, 42, 39, 29, 30, 44, 36, 37, 36, 32, 38, 33, 33, 32, 31, 33, 35, 59, 38, 30, 37, 32, 70L, 30, 41, 40, 32, 32, 33, 37, 37, 30, 39, 29, 45, 41, 48, 35, 48, 39, 38, 37, 45, 31, 35, 41, 56, 42, 44, 34, 36, 26, 33, 27, 34, 46, 36, 28, 31, 31, 29, 57, 29, 40, 45, 27, 60, 31, 45, 55, 32, 36, 29, 29, 38, 38, 40, 52, 47, 34, 41, 40, 60, 51, 33, 32, 30, 31, 42, 31, 35, 36, 28, 32, 48, 43, 38, 30, 33, 33, 38, 45, 48, 39, 40, 43, 38, 34, 31, 30, 26, 31, 41, 26, 33, 32, 33, 27, 34, 31, 36, 28, 29, 37, 38, 30, 29, 33, 32, 58, 26, 27, 32, 27, 29, 113L, 40, 46, 30, 29, 38, 30, 27, 36, 33, 81L, 30, 37, 34, 113L, 38, 34, 39, 32, 28, 25, 31, 31, 31, 26, 33, 29, 29, 34, 31, 40, 41, 27, 33, 34, 54, 47, 39, 29, 30, 38, 39, 31, 59, 33, 35, 113L, 32, 35, 27, 36, 31, 32, 27, 27, 25, 25, 26, 62, 31, 47, 60, 39, 32, 34, 33, 34, 26, 26, 54, 48, 23, 37, 35, 26, 31, 31, 50, 33, 31, 35, 27, 25, 31, 28, 38, 28, 37, 55, 45, 41, 27, 57, 31, 37, 42, 40, 31, 35, 34, 35, 24, 28, 34, 23, 25, 31, 28, 34, 54, 37, 50, 32, 41, 32, 34, 47, 28, 27, 50, 35, 28, 27, 42, 38, 32, 36, 28, 36, 47, 32, 32, 28, 29, 30, 47, 37, 38, 33, 29, 36, 39, 35, 43, 37, 28, 47, 66, 28, 29, 33, 40, 33, 47, 29, 32, 32, 31, 29, 32, 35, 32, 32, 32, 32, 32, 45, 45, 32, 28, 31, 35, 59, 34, 44, 39, 41, 43, 33, 32, 32, 40, 38, 39, 42, 43, 38, 32, 38, 35, 32, 37, 30, 32, 31, 36, 31, 46, 39, 35, 38, 26, 34, 42, 37, 39, 35, 29, 45, 32, 40, 34, 38, 40, 29, 41, 45, 43, 46, 115L, 36, 48, 34, 29, 33, 30, 41, 38, 33, 37, 36, 48, 35, 34, 47, 34, 34, 42, 34, 43, 34, 44, 49, 36, 36, 31, 28, 42, 27, 25, 29, 30, 113L, 55, 27, 31, 27, 34, 34, 35, 41, 38, 40, 52, 32, 33, 47, 29, 52, 50, 30, 29, 38, 29, 31, 31, 36, 53, 38, 35, 32, 32, 30, 32, 36, 44, 38, 42, 39, 32, 115L, 30, 40, 31, 29, 43, 32, 33, 45, 41, 48, 33, 48, 42, 37, 44, 34, 34, 36, 28, 35, 37, 32, 27, 40, 60, 30, 34, 32, 33, 39, 23, 33, 25, 25, 32, 34, 41, 29, 41, 45, 29, 29, 34, 32, 42, 35, 30, 34, 31, 32, 46, 32, 29, 43, 51, 49, 37, 27, 32, 36, 31, 42, 35, 56, 34, 31, 48, 36, 36, 44, 45, 47, 48, 59, 37, 25, 37, 32, 33, 50, 37, 41, 36, 49, 34, 48, 31, 28, 33, 27, 42, 25, 60, 35, 45, 27, 28, 27, 25, 33, 45, 37, 32, 28, 30, 26, 41, 39, 27, 25, 26, 26, 33, 50, 34, 31, 59, 22, 25, 33, 29, 29, 29, 27, 46, 27, 36, 33, 32, 38, 55, 26, 37, 31, 57, 31, 27, 113L, 29, 29, 27, 49, 54, 54, 29, 44, 38, 36, 38, 41, 29, 47, 34, 26, 40, 35, 41, 34, 28, 46, 56, 32, 53, 31, 30, 37, 41, 29, 34, 45, 36, 34, 27, 29, 39, 37, 39, 43, 29, 32, 32, 37, 35, 31, 31, 39, 37, 29, 36, 56, 31, 40, 41, 36, 29, 35, 33, 35, 35, 44, 29, 31, 42, 37, 47, 42, 28, 30, 60, 28, 34, 52, 45, 34, 42, 27, 63, 45, 27, 52, 44, 38, 45, 50, 47, 47, 31, 29, 31, 35, 31, 30, 29, 53, 38, 36, 37, 42, 28, 35, 34, 47, 40, 30, 29, 44, 29, 33, 30, 34, 59, 45, 32, 50, 42, 41, 31, 29, 30, 43, 43, 35, 32, 23, 24, 28, 34, 38, 32, 32, 70L, 40, 33, 39, 31, 34, 30, 45, 46, 62, 32, 31, 51, 47, 35, 37, 30, 58, 32, 28, 36, 47, 29, 42, 29, 27, 26, 39, 28, 41, 39, 32, 36, 47, 29, 31, 29, 29, 32, 31, 31, 38, 37, 28, 26, 31, 40, 31, 32, 26, 38, 26, 31, 50, 37, 25, 28, 33, 36, 33, 26, 33, 40, 37, 29, 38, 33, 40, 33, 60, 60, 49, 41, 26, 29, 27, 36, 36, 42, 40, 38, 37, 30, 46, 32, 65, 36, 45, 30, 42, 47, 113L, 30, 35, 30, 46, 42, 36, 33, 37, 36, 52, 35, 59, 56, 113L, 33, 43, 37, 45, 115L, 34, 36, 27, 30, 43, 40, 43, 36, 45, 113L, 27, 42, 46, 53, 47, 43, 49, 42, 35, 37, 33, 33, 42, 53, 36, 32, 47, 38, 29, 25, 34, 29, 34, 34, 34, 38, 34, 29, 29, 34, 30, 38, 34, 29, 34, 32, 32, 49, 38, 44, 32, 49, 33, 39, 33, 33, 44, 39, 47, 25, 41, 25, 45, 39, 41, 34, 49, 40, 42, 32, 41, 32, 34, 29, 30, 25, 25, 60, 30, 41, 39, 36, 39, 29, 46, 40, 31, 46, 46, 32, 29, 32, 29, 32, 29, 32, 29, 25, 32, 29, 32, 32, 32, 29, 32, 26, 28, 38, 57, 41, 48, 55, 32, 38, 30, 32, 45, 33, 38, 34, 52, 32, 39, 36, 29, 45, 41, 29, 38, 41, 51, 115L, 39, 115L, 33, 31, 31, 27, 57, 44, 53, 51, 28, 42, 39, 33, 34, 29, 39, 51, 34, 35, 32, 40, 35, 28, 54, 30, 35, 34, 32, 31, 42, 32, 38, 33, 59, 34, 34, 34, 40, 29, 36, 38, 38, 39, 41, 44, 57, 28, 33, 39, 115L, 38, 41, 35, 32, 56, 34, 36, 39, 41, 42, 31, 35, 27, 28, 35, 33, 32, 48, 34, 43, 43, 29, 30, 32, 43, 38, 35, 36, 40, 115L, 38, 41, 42, 56, 36, 30, 31, 28, 30, 40, 32, 33, 57, 43, 37, 38, 38, 38, 38, 39, 40, 49, 43, 37, 57, 39, 38, 38, 38, 34, 35, 41, 31, 43, 36, 53, 32, 34, 27, 37, 28, 40, 39, 56, 28, 39, 37, 38, 32, 29, 32, 38, 42, 31, 57, 33, 37, 36, 44, 44, 26, 37, 33, 40, 42, 38, 41, 30, 31, 41, 52, 53, 38, 37, 29, 57, 30, 34, 43, 54, 31, 55, 28, 33, 63, 28, 37, 45, 31, 39, 53, 41, 29, 39, 32, 33, 38, 35, 40, 32, 51, 41, 36, 32, 52, 42, 34, 33, 29, 38, 49, 36, 32, 30, 31, 39, 39, 28, 50, 24, 32, 37, 37, 34, 34, 28, 32, 32, 49, 34, 44, 37, 42, 36, 36, 49, 57, 41, 33, 43, 44, 43, 37, 32, 38, 32, 33, 44, 27, 39, 43, 53, 34, 34, 34, 32, 30, 34, 31, 37, 36, 39, 37, 42, 27, 39, 33, 29, 40, 53, 39, 29, 38, 32, 33, 113L, 33, 50, 36, 39, 32, 28, 44, 32, 29, 36, 37, 34, 34, 33, 29, 30, 41, 33, 39, 29, 32, 39, 26, 48, 48, 32, 26, 47, 31, 45, 35, 37, 27, 43, 34, 40, 36, 47, 36, 42, 39, 38, 34, 53, 32, 38, 53, 48, 33, 47, 43, 47, 50, 37, 32, 35, 41, 56, 31, 34, 38, 30, 38, 115L, 34, 42, 36, 34, 43, 32, 32, 32, 39, 36, 57, 34, 38, 38, 40, 48, 40, 29, 49, 43, 37, 31, 37, 32, 34, 34, 27, 63, 34, 28, 34, 38, 33, 40, 33, 32, 33, 51, 37, 53, 31, 35, 52, 36, 41, 30, 31, 31, 28, 37, 40, 37, 43, 33, 39, 32, 51, 37, 34, 37, 53, 34, 57, 28, 33, 29, 38, 44, 29, 39, 33, 38, 51, 39, 40, 33, 41, 25, 33, 38, 35, 29, 31, 52, 31, 53, 42, 59, 33, 30, 34, 40, 30, 36, 29, 28, 40, 43, 32, 32, 42, 37, 31, 35, 41, 39, 42, 31, 27, 26, 25, 34, 28, 57, 34, 55, 29, 29, 41, 35, 35, 44, 44, 50, 50, 27, 38, 51, 31, 41, 37, 53, 37, 30, 37, 29, 43, 38, 40, 33, 32, 32, 37, 39, 32, 57, 51, 49, 34, 38, 36, 32, 35, 53, 35, 52, 42, 36, 30, 33, 33, 36, 59, 33, 30, 32, 39, 31, 28, 52, 50, 34, 48, 29, 38, 45, 41, 36, 34, 39, 24, 47, 26, 46, 32, 34, 28, 45, 113L, 34, 29, 51, 33, 47, 113L, 31, 53, 40, 38, 37, 32, 35, 30, 51, 39, 28, 57, 31, 44, 44, 33, 38, 66, 34, 29, 41, 43, 35, 36, 39, 36, 67, 48, 46, 47, 33, 31, 32, 44, 48, 27, 30, 35, 42, 27, 38, 30, 31, 26, 29, 38, 31, 36, 54, 63, 46, 61, 36, 25, 59, 31, 30, 37, 29, 51, 28, 30, 36, 35, 32, 33, 35, 39, 53, 35, 37, 45, 37, 42, 28, 36, 43, 57, 40, 36, 32, 35, 40, 26, 38, 38, 39, 38, 35, 39, 32, 38, 38, 32, 33, 31, 32, 32, 49, 31, 34, 32, 32, 32, 27, 40, 33, 29, 47, 65, 42, 31, 43, 30, 49, 52, 50, 33, 34, 113L, 42, 37, 31, 37, 42, 38, 28, 40, 34, 41, 34, 47, 49, 35, 31, 36, 53, 31, 59, 39, 34, 37, 57, 30, 42, 32, 41, 44, 29, 32, 34, 40, 40, 41, 30, 34, 45, 62, 41, 45, 40, 34, 30, 38, 34, 38, 33, 40, 48, 45, 48, 38, 32, 38, 41, 33, 37, 38, 37, 31, 115L, 34, 36, 29, 32, 32, 31, 30, 40, 37, 27, 34, 31, 38, 34, 43, 38, 38, 115L, 34, 35, 34, 36, 31, 39, 38, 30, 33, 43, 115L, 35, 34, 36, 42, 36, 40, 29, 30, 33, 25, 35, 44, 49, 31, 43, 26, 35, 34, 27, 47, 41, 41, 53, 32, 26, 40, 27, 28, 54, 30, 30, 31, 34, 57, 50, 32, 41, 27, 50, 34, 30, 29, 26, 28, 29, 34, 33, 28, 27, 32, 34, 32, 29, 39, 28, 45, 38, 35, 36, 32, 44, 30, 36, 28, 53, 36, 28, 37, 37, 33, 38, 36, 33, 32, 38, 36, 50, 34, 39, 37, 29, 59, 32, 40, 28, 30, 33]
>>> import matplotlib.pyplot as plt
>>> plt.scatter([1,6],[2,10])
<matplotlib.collections.PathCollection object at 0x00000000168E73C8>
>>> plt.show()
>>> plt.show()
>>> xs = [22,11,14,38,29,43,56,47]
>>> ys = [101,120,99,88,72,77,75,89]
>>> plt.scatter(xs,ys)
<matplotlib.collections.PathCollection object at 0x0000000016C917F0>
>>> plt.savefig('partyplot')
>>> plt.plot(xs,ys)
[<matplotlib.lines.Line2D object at 0x0000000016C91F28>]
>>> plt.show()
>>> plt.bar(xs,ys)
<Container object of 8 artists>
>>> plt.show()
>>> plt.plot(xs,ys)
[<matplotlib.lines.Line2D object at 0x00000000175A4E48>]
>>> plt.bar(xs,ys)
<Container object of 8 artists>
>>> plt.show()
>>> plt.plot(xs,ys)
[<matplotlib.lines.Line2D object at 0x0000000017908978>]
>>> plt.bar(xs,ys)
<Container object of 8 artists>
>>> plt.title('cool bar line mixture art')
<matplotlib.text.Text object at 0x0000000017889E48>
>>> plot.show()
Traceback (most recent call last):
File "<pyshell#55>", line 1, in <module>
plot.show()
NameError: name 'plot' is not defined
>>> plt.show()
>>> plt.bar(xs,ys,color = red)
Traceback (most recent call last):
File "<pyshell#57>", line 1, in <module>
plt.bar(xs,ys,color = red)
NameError: name 'red' is not defined
>>> plt.bar(xs,ys,color = 'red')
<Container object of 8 artists>
>>> plt.ylabel('artiness')
<matplotlib.text.Text object at 0x0000000016CCF710>
>>> plt.xlabel('artist age')
<matplotlib.text.Text object at 0x00000000176ECA20>
>>> plt.show()
>>> data_age_years[:10]
[113L, 56, 31, 40, 28, 30, 36, 32, 32, 39]
>>> plt.scatter(data_age_years)
Traceback (most recent call last):
File "<pyshell#63>", line 1, in <module>
plt.scatter(data_age_years)
TypeError: scatter() takes at least 2 arguments (1 given)
>>> plt.scatter(range(len(data_age_years)),data_age_years)
<matplotlib.collections.PathCollection object at 0x0000000017F949E8>
>>> plt.show()
>>> average(data_age_years)
Traceback (most recent call last):
File "<pyshell#66>", line 1, in <module>
average(data_age_years)
NameError: name 'average' is not defined
>>> sum(data_age_years)/len(data_age_years)
36L
>>> float(sum(data_age_years)/len(data_age_years))
36.0
>>> float(sum(data_age_years))/len(data_age_years)
36.765912777936826
>>> data_age_sort = sorted(data_age_years)
>>> plt.scatter(range(len(data_age_years)),data_age_sort)
<matplotlib.collections.PathCollection object at 0x0000000018358908>
>>> plt.show()
>>> data_age_sort[len(data_age_sort)/2]
34
>>>