import subprocess
import gzip, base64, os
import stat

gz = b'H4sIAK6DaF0C/+1ce3wTx51fSX6IlyXe5hEwiUlNCLaFDZikFMm2YBVkcLF5JC0ssiRjJbKkSitiEhJIbOeiCKd80lyby/XBpU3a5tO7kl5KCaVAysO5a3OlSZukTRMo5bHCEJxAwIQE3fxmZuXZ1a5jkt7dP6cEj37f/T3m95uZ38yuZmez073IaDBw8sfIfYkDyjHOjmk7xQtrMiwIq+KGoL9TuclcHqJzGT47Z1eUfVS1XJopnwn9y0H/qoyErjLaFeVkyieXBqbM5diPXVH6vsgpSo4ryshBXd9aQNC3FqxTlNtNBI/kKeWMVK6PyvVRfrnkjJyilP3Lof8aKd5I/ZLLWspXy/DDp/6k6IPvq6sIvbrKrih9lM+nkvsyksvjBv+x0nI5tacXlxJaf7mU26EsGGiaW1kW9M0KBkLxtlltVXNnza0sjYVLZ+M6WSnv4qUrFHEspHUeQ/sAXO9rKa/63thRv7UOd5z8/Rtr/mXru28+DtduZdptZHP9Os+0WgNgpejfbPRv6EPbhO94f3Xo8db0K492esdtvdP+/qz3hbUFRRvKS5x/dI95anjNdydHdm103bNTLw4foIqN0sDHGbTxn3HauDXTY5SfqTr4sznaehp08N/o2PXq8L+jg4/P1cYX6vB/qINLOniFjr8f6cTzPR09y3T0fEMnDmd18NM6do06cSjV4c8xaeNmHf5/1OH/kQ7+ik4/fFDHr4BOfIbo+DVcR//fdOK/Scev+3X0WHXsvqrj78M6+EGd+ryhU5+XdfT8Raee39DRzyP+adxErrxmnSI/jsshuJ3iqyk+wUTwLQ6Cb5HjQ/VvG2NX6L8T6R+J+Itq1zGzC8c9aiK4neJyfn3UQPRz1Ur+vTQO9Sr9S6ieIspvpYpW0Hpur1HW899pfLaPVerhUF6PiT7vzJmQy+dygrC+NRwSYqInKgoCJ9yxQVjuXx+Iif5oTdATi/ljnOBqrBN8/iiFG+tqguGQv9HTFPSTa9pXhIjYEvV7fMI9/o2CF30TAfS2eYTmqN8v+Nu8/ogYCIc44a6lDbFKZDZiKxfAUkyMhjc6ly9p8Li8Tnw5PB9dCIRi/qjoCjqdyxvCjQJcWNIgzvGKGyN+xGirQDz3Bnz+EOIMiM4NhCFmq2gOhHxCcyAaE4Vws7N+ibe1lWid0xyMx1owZ4NomysIqMbhe4UmVGmvJyb242FUJb+nVa6CF6E2b4snKohRT0CMIeuoTqKtoskTC3hlblej0FguOBvmCvVLGiqEIPUe20CaGxuRxPx+iUBoPZXTUI9DQWIhVgXCMVTHmL/ShfystRFPG8S5wbDXE/RngFiNDZxl4whQqwIRaQ2QTk235niDfk/Uia7MFlzILvon4pa8q9GFhLVacXa50CD4WyPiRtQzIqhrhaOe9X4nbS/bHGKQeNwUb9Z3twLxgC/C+rY2IeKPxsIhTzCA1G4op3XPmK+dLTuN6lknoDrfIyCNPhmd64lE/CEfbnyE+IL1G1AUxPmhMGlyERxaeV21w52j0huOa8iiVtSRBbHQva1YeB61rmpW4gvuK54gtKmoHi3hikhcdHqJ3HX2IdQDoKfixlyGYtIa9uHWXLkUjT5ktM3TFNhgQ20oxAKCF1KAAAMMdf3mMK18VuRQgOdF/WhobPA7W7U6aY1NHo5Mm1Xe2+IR1Q2EdMdoA0GqaiVZCn1b70WRBcrGCStC98KQXu6PxVv9cNFL2JrDSAfX7A83c83r/WKMQ8EIIoQGU/S3BUTA0P9cq7/V2xrhmr3BcAwSE2ihabDVEwhxi2tqhIrScm6x21VdI8wunV06h6tZvdpR7RJspRUEXr0asVSW2mwKcj5LkbWxkTNx8rcc9C8X/Uf+crgkV+CbiX7Lw/84ypeH/wKeT6/LPMr/8tD8YuB25vSvV+tv3jiMQ1IzcuX1vYF7nbkenxgYAlZsmes5eI6S58fXf3pPLqzQF+QSzNP3LSOs8HlKJzbPMMJKfxWlxRlPmMEbP9XXt5DMS3nMvQyep+i8mkvX+5lPdT8+m4GLGLySweX5PJfeT2TuGhl8FoNvZ/A5rP7afryc1cPgNgYvtBM8n5nTsR4GNzJ4CYOb2PozOBufKgZn7/vsDJ7Prm8Y3Mzg9Qw+hMFXM/hQBl/H4MMYvIXBhzN4hMFHMHgbgxew7c7gFQz+KINbGXwbg49k8KcYfDTbvgxexq7LGXwMg+9g8LEMvovBxzH4fgYfz67vGbyQwY8w+AQGf4vBJzL4MQafxN6PMfhkBu9l8BsYvI/Bp7Ljy9GPs/cXZgafxq77GfxGtv8z+E1s/2fwYrb/M/hctv8z+HS2/zP4zWz/Z/AvsP2fwUvY/s/gM9j+z+C3sP2fwWey+tvPmvlk7rO3FnF8534xV2rA4EHzAeXyOj3nCcSSnv4k+muZakffgG6BS6ljafSZ/hjQkDJSRzD9MNCQKlL7MX0f0JAiUjswHQUaUkNqO6bvBhrSUWobppuAhhSR2oLpu4CG6qcimF4ONKSE1DpM3wE0pIJUPaargYYUkLJj+jagYeinyjE9G2gY8qkiTN8CNAz1lBXTNwINQzzFYXoi0Bage68BPQpoK/Yf00OBHon9x7QR6FHYf0x/NBPRo7H/mP4A6DHYf0yfAXos9h/Tx4Eeh/3H9J+BHo/9x/RrQBdi/zH9n0BPwP5j+tdAT8T+Y3o30JOw/5j+GdCTsf+Yfh7oG7D/mH4G6CnYf0w/DfRU7P8nQD8BdBH2H9OPAT0N+4/ph4G+EfuP6fuAvgn7j+ko0MXYf0zfDfR07D+mm4C+GfuP6buA/gL2H9PLgS7B/mP6DqBnYP8RXb+vFs1w0iH0dR/cc+4FcncEjQLpfYStPmA750r8fi2fOM63n+itb3R177fPsXN898tHKqHoLh9v56TnEOtFy9RalDc3I9EV/Kw2VPDtfQV84uS9xjUHduExhAbOxTX74FL6mGUqvlXd1cbwv9xnQvx84tf8y2cW8oYj/O/74kh4NxF+DQnzicNE/jiV37LgrlkouPGRK5Ck9CBycM3h3MUIMlw4AOOPb18g3YwYxCmZKoxZsa93AbKWOJk+siZ1PxKxTOVSMVKucKxyrHSscDQ28A+dfQUNm33QdfbCMkA68nE6zSdQRPjOt8XpfFdjsX1vIwQjcVSqRRHgu2vgcRGKSg2ewvjEO4z0E0jalThc13lJvA1k+b2HkKw7cVkyI1lX9yIi011bjOcPd0IsLkGoGVIDAvHioGdS5jp8wYluhyGBrjptl/hEsLic7zwn5vBppxkoK2N+NKm803YCan8L3+UuroeHDdzuobiqRyXbx9kuuBJ/cSd8xVVQG3Nd8kvOx8oYnfuugs5DDPKvV7GTtrfBzTKHZeeh9r4VcZMr3Q0ur0beuhPXpPEfY4exJdlxd+KCOykWW13JL/HJCqkWq3ZyUNmhfHqJ2dLxD7lQLyetn5OGOFhc6E5uKjbz7Q9wnKXjaZT5DtcWFxmSKCgd++M3udLLzPEbXMl8vqtNegmWefz831k6V+WBybT07Y/Saagr4luK+fKUfM/mcriNRMS3ZVMxSuodLyATPDJZsvdB1IC2116CFpIqoMLtfWlLR4Gy1zyNJJ3QZ/aLE/lurgo0d9upF3Ya5UNuaC7UOD1jm+FTapnagecT10MHOWiXXWny2ezqysnhF6TRBLEXFowOi/sin0RB4JMrOL5rT/ERpFhahGwig5aOLk5Rl4KPcCdAQXXsA+3iTNTwfNeLWIrverJ4O6q71PaRVkc46k6ch8bbfRUilhbn4MiWZUUWnshCZKuvIC1QM4U/fPIBTupGBlDtOl0ocq4kauTkagnV6VeYwbK0p72tj2sbjuxJC6A/AUeXe2ba/titZsYZxxWVM7faLXv/iPs09mpr8Y/Am7uuaHpTlzjF6PqwT9aFKyGW7P0nMrAhKDtAjfeK5gB3JRfyyVUSn1zDubu8En97gxSfxCfelQ5cAR8dlicP9RQw/uOecE4s5NN15vioXRA11/yD8fU8ctbaRyKbB5EVpzs7zrlR/Kx1iYuWjosoR6QmIOPNqv6hDD/ijVdD9A9eRr2OKrB07ATpt/GK5UBfJhGux52q1/KyKdFRfBA5mSRFzwq+fX/fS4TtP0TfS5TNnNhK2EjRs1zBtlaPzZ00dfHpxDDU4l8fi1jcidPQ5fZDVN9B1cTrhqS568vphLXzPyxfX4DIDMMeYJipZPjuJwzDPwPDVpi++lvzC5dprktD+iiBNtyFePcKNFl/67Jml3AlW7m65Dwe+vkl6WHEZHsb4uTgZ0joGxrc4ty6ZLP0EsjR+YdP/MZtOMYbJD7RDVLuy3jkiSOQDN+1xABS8T/vg9tX6BUjLsGgyH0EJRI+aUfd5ikruiFFtbR0NKLRvOX+Kk7MfaympmcC1HMq5jYhzvK9NEunj1j29mJ10kjcZ7ulIZdJt9FLdVY6IF/4EPjOicUu6HtTyLBiGcdixvPSox9CfDcVF0rfResw237+oYMwE37F8VXHGsdah7DmAFSKEcUJOL4MquwG2eRXUT7SytTY0eWQXiCjd/LwLXk7jyqfKx0HZ5GGoUhDqhSuML3L0vEH9EWnh6X24Z7NcncPwP2zLO7dA3A/m8X9rwNwP5XFvX0A7iS6xvTrPdeYfn3gIgrD89cUHT92hWF4Bhg8VxQMY1kNDwGDSanhBpZhHTAMUzJIfQzDQmB4AyGpl3HXQEvBQ6mpRvlrzxRS4kEHTRcG/m9nWDP4KsDJvIA6yj7oD1LsIqwUDsIyZh3MiTDzJiMS3354DPS9ddKoC6QXrtvbjYbtbrgjkP7tA4rxsFSQyj5UDPvyC3ISt3ROzYG5Bum2vZ2aj74To9coR7fp2Dw7ni7fQvP7Xnzt4YugmyIeMAmLfil5gQTkGKw+YH5FpXTzRYXhX3wAvnSjQWjpHI4Nd2A+lIBSJRnjD2UZt+fLxnOpcYw8BMbhDkYqoMb5fGK8CpXSjy8ojN/GGL9qIsaBD4yPR8alxPso+s9chcQLrQKpYi1OFatVqUJcqEjoE/QSen6mv2wekekroz8AA2lpyfuQAM+JAp7h7uRVWeZz2fgp6EYJ6nSvnKA+KSAp6yQOwiHc4oqk1nHzEPWIXGPQH5G8Aa/GMj33OxC7GQUkfVnlK7AgbIcr+0b0swMYQiCVPS95gONF0HruY1q73NYpKPGj2RY6GZ8csWEKnQcSW3Mw1N2BO9o2uBtC7ViSxylzdMefshLMTwdIME+TxSUyfPEGYtiOF68jPrmh3zCGkGHoZLLhbflqw99XGRYf0Gu6e5h08iOshzZf73kUkG/mMzmPadvXz8OcTNzfAXMi6u6FyH1p4vtkaJQDMQu1fGq5WVvFNqoCHJFVbIER82YvUfEUEGegFhYzTQ98wpRJQeolwS4MKqIwxaAO/8UBwn+U688FrkQ+1A2+4nTXvZje/izWszU+y9a5AWy9xfUPfWoLvg7S1vwsW5YBRslHnHYDWN6D+7qcYpLfNhVHSHIrgXZJzkRZwdK5yEACH8G9r2tTTiT5Ys42xNX+Xwbpe0g+9UUyBFOP5mgbef4cXkLdNEkxkm6ddL0j6RtZLgcGcLnRoF2byaQ2/zhRMby+O/F6h5fJqK7NnwaozUGoO0oxj58liTDCJ97jE7+W3sW0WNwGYIu0+ZxiprCelZ9AWDo7TKQdWpy2S6nvmOQ08eoE8AM3z4g/TZCdcOdEYJC0ydXfz6mrvyur+o8b9au/0agdzN/16OSAceeYHDADubGvpH/+68EPIdAyFc06dZZV+y0jnZlV5z548Cn94ix9mNDFm/lEnRUW6Oj2sgqmwhxXejGAZiRSSBesRWTBijyvMcO82pGAAKEp09K52ZR1z2XpaDKpva8y6Xt/k0nb+9+f0UlfhWeZ9DWzR+H9F898qvcv9XxO7w8bZe/3GDW8/15W28cHaPt16FoP6W0PcGTlX5hiZs2ZZ/DdjKUjmLHapGX14SyrqwewWqPT49akIOaoa8sB3wER++EZEvBXgNidwres0muotP/cgG9hfgs28S3Mr3HaNSnrpr5nEDfrzZWteAy6EnlQiRaSrJXPxTSS9Y+zMtfmAXLF3TqZq0ki91tPn0Z+dZwTzeDkJwh0J33FqHOcsHSsxd3eXYz8bMD9Pqf477aW+9tpEtZJp0kL4P2wqbM67fTz02R1ee4UcJvsVXZuL4dmmd1bKsgtfQeqeM98LdH7qOjPiKgVRHewoi6JrM7Q1/dOk5hcQmXq6Q8xnnriQ+YOiVE8jSq+EynueVmLI30KTw5tY/qTaseYwSbVzxXdzlNa/fp3p5l+ffyUIpFcOPmpiSRyWjORlMPzU5RIFuklEhfy3QyzTse70LHTS1F/+gN+dqV82Nrxi6zFbZf+iqfnfkUSef0Ek0ROncRPdS0dNbDyxgbnwze1we9nJZGNAyQRn07nLDwJHeGyVH+CLH+UXQw6+SnMIRab2XsLx0nyqKQcHlKth3QS96hSyefqAw+dIJ35pb+RvlBOnr9+tbjkf8iglRrkqcES2SA89xGLscEpmec9H1DuiZQb/6pBn9rfDWnRzKd5c1wgX5N/v7ERAIPwxEr63nF4yrSp2MqJPJixYosLyFeVxcUKi9P0LFrgbnTVCe2Mcf44sWyVph+HDnFemnUC5xjbudQPrmjL/PI46VwX/opSkoiYlM9/HSsb+Pazha7ENVdybRHEeSaO83T1pNT5PP2Z5/m/4h9fisjT47WFA8l8i8psIDKFVMY6kEwHlan+a/+vWq7kFBC5EYtMznQBHA/EOh6z5pHf2Q8WfsWx9oAi2iv6o+0uzkmifz0uBcOXWYbhiGF4j1PBsJRlGIMYxvRUM7epJ/BjscpiqQ6i/IbykdjVa2RRbZbK4OpZ5dWRaXLVKo2Eq8Y0bqFM+/T/nljvSiAn8+HeqC55L8mHL5B8WGjp/CGJkisZMvPze8QHHXsgoD12hRejs+PA9PAy7EHyGJqNiptl++7kTHjmeyN+5jtZfubrnn86/iz0v+8cxZMiifwBZPqd+Ku0sczQMg8cJb0vfhRaaLGZ/FKXlg4dg5Fz0Mw8E27Gv/828ImrUn4at+tXUl86qu6v+Prpa/T6FO3r3fL1a++i65lr8HsuCmci7VjpSlxyrHAl/uhodHdN7zUXcSv4rll9qGxwzzhpe5t/+RMT7NiQnO+Sp1FTMvFInHEnLtUiHekxf0EuG1C042ewK2tkXw4w9blwgO79oFs9DJyRK/P5N5TFRF8gxNk4V9myonDEH/XAlsYi9D/eUOgrag4E/Vx0JrcIlUXTgCVU1ByOFsGW6EBoPTeUY3ea3nab0CB4wyFExb1iUSgeDBaFwmLRBk8w4OOiXE04HvSFviBSPaCT7DdZapstLHYvq3a4BWGpYKuKbBRbwqGAdw5s2ozZyld6gnG/MxoNR52D4a9oED0hH2ycpSID8893yps5ndyg6lNR7Yn5WaF6uh8vMteu2M+X2b9DaTu9vn2uXfO6leL7da4fm0PwY6rrA9d3nmsZE7tB+DfXGdoQiIZDrf6QqJJU1qd+nnZ95OtF9Pq2eXbN95rkOMAKA8evkvKP0ebfMU/Jv+1T+DkV/w4Vv2GS6XYf3SNY+HY6DevLV95JpyW09kuhEn4cewsNvj7Y2wc/WyC85Go6DTufCtFSbDsqq1C5C5WrUQk/QLehEjZNSvCDN908Ke/VM9y3nDO0WQ2ThuebtxnyrWPoPjgPssXu39LmJ3vRgH/dn1FdQXeBdVFB4R2WYfeat3ALJ95+S0Xxjez7iKb76t1YQ74JXqEwyXoq6b62t5DdZyZyXM6e21BSKrBWFxRWFxRVF5RUF5Q7CqoWF2wZ1Z6/Na8r9/Gcr5seMWbqZVLVazK1WdWXTj8J6+bqAqujoLC2oLzdBI9QwB686rgLxfAMnvCzbDkK7ApTmTiI0C8+SqdHUbl2I8G3wv5MDfwH0N4a+B7wF7XxNIrL7zUGDUS/nyP1/rrRWVD4uMlZUNSV4ywo2ZrLF5Q/kscXVLXn1xXYg1BTVN8SXHfkAfLDjPW/iPQ8hfQYVV0wbfp+O2fabrqFviNlgl1ozZQoBEKiuzDvgpXJnQaydXQ2XLnVSPaLWmBnWK+RbMpcBNveJplIrx0HRNJEtstOAuJXJrJHE34y4Mw5ZENoKRB/yCVEI6heiRYqHngFCX6S/QUiXpUr3jGEbDb+Jeh/ARG3Z15fG0JqvQe0XBtC9irfCdpuQVoWZt76GkrYLgPb/UMJ22vA9tpQsgcZG30T/YnKu4VdFuQlKh+BP5vQnxUoDlcgEL8bSfb2+uG3s1dHEWI9EG8i4nW51s8jY3VyqMDyVHlD87jxROYnEGO+kNQtNpEGnDdy///5P/uMJ3m4iL7HfWycMo8bdMqf5CjpnSr6dUrLe7z50USvvLe7ls6j8l5m+T3iSar3juU9zRK9LudVeW/6h9fSYbyPm74vLb/zbTXbM+8LYHl6Xd6j/jXKKO9Nl/daj1WFJ7PHnu6Dlvtqr0k5T8h76OW93KstdgW+pcCuqPdb8nuYKvtoxYr96R1B+NOUluvRS+mHR9j/V7tJ5j121ecR2q7fpOVztNxJy8O0fIOWp2h5iZZ5dB0wjpY303IuLRfRciUtm2m5gZaP0PKbtHyOljtpeZiWb9DyFC0v0TKPvtc4jpY303IuLRfRciUtm2m5gZaP0PKbtHyOljtpeZiWb9DyFC0v0TKPjrdx47Tbc3FNzW1FJSua4iExXlRZWlVaOWt2HFO2B22VpeWVpZUzCM5RJm/QE1pftMEfjcGNREXpnNLyWZVEZPaD6LYgJm6cXVQietbHypY73U5Hg1OomFNe1hwIeYIzikrgXSsf3H+43SvriPgMNHvFNraKniZUilFStsjfAiHRH41wpeg2w1/qqHbNQqoptT4UL22KB4K+WejmA1MtnlgLV+rbGEL6SClGyRVaYQUhoGtRf9ADjPRbJCiCyQD6K/rb0F9U7wC6FvZ5RA9X6m8RmqOeVr/Q4ov2U0ip10vffRNE/Fop1iF4olHPRqJD/n63N4or5mkNeJFcWMR/iF1ioykW40q94VZYm3/ucTWJ5kw5r/Sfb6E810Kdj+XPTap3hPrPj+AU7wNzqnMg5I9NJS9SeZECxZ8iD+u3SygnyfJyHn6KAvUUz1Xl7cx9EM3BRlWeluTzJKhgHvXdrMqXK2luNKryvtWszPN68VtLc6wsL+fVh+lEFVLVX3WMB3cPzdmZeYHK91L5bVx//U0a/t9HY2pUzRNbCpTzhDp+sv8dKnl53lltUc5TuXQuVss/zpydwc7T/Gjl/KvX/gmVfITKR6j8DqP2eSJy+aRKXl6HFNGXpW6cqi0vf55Wycvrito5yvlVr/7bVeOvnsrXU3mzaWD7P1LJ95/DQmjfp9jfqZLfT+X3U/mPVR1W3X/2q+ThNpKUtH6Gge2/Rt+rM6nWYfI5L2p/1fbhlxgLIy+v06QF2vxq+gytf2Z9Q+V7Byl/nhlb7DpFPodHDkyeSl72q09lX37PtG/hwPbl8hOVvLxOlI8bajEMLJ9nUMq30PfGWhyDi/9wA8FMqvdh2xz954WwH/V8MJLaL1fhsvwjOvOPXI5UvYcqf65R+YmGgfOvQfV+a+a9xjtof6A3EPBi1CKN/DVEx/4rq+j5JCMGtj/Qx4S45flYiRsz86wSN2XmTyWek5kXlXhuZr5T4nmZeUyJ52uu+00oKr2a+JDMfKLEh2bmCSU+LJP/lfjwTF5X4iMy+VqJF2TysBK3ZPKrErdm8qYSH5nJh0p8VCbPKfHRmfylxMdk8pISH5vJN0p8nOb9jgnd3cn5QYkX9o97BT4hM56VeP95MEp8UhZmwDn7/bQaJ+88Z8fBicdTf7vI7+Cuwbomck7V+TFbKb/8XFY+8+ZXFI+o8PcpLj/PPUPx6QaCH7MR/ElqYBnFt6n0bDKQ+tSq6pPEuCXz3Fge57+kuPy8Wsbfo/gxFT7NSPBtKj2rKL5DhbdTfL9KzwsUl5/7y2cD/JXi8u8N8jviY0wEt6rwxRSXn9fLZxI8QHH5Ob38zvGPKS7/XiE/m36T4uVVSv78HIIfUem5jeKcir85R7tffQ3zZ4+LB3Nof1CN929QfLsKf47i6udJe3JIuztU7f4bjGeP0w+oHvk5VWZ+wfzZ413PrxtygX8kt0s1XmbmavvL6Yy7eZg/e7zX4QX66Kz6r6W4up5fw3qy88x9uTBHZ+eNTp1zs36A8RGcnfZPeS59keIOVfx/mat9HtVHOvqn5mnji/O0zxVbqYPfraPnQR38n3Xw32I8e355TYf/sg4+NF8bn6GD36GD+/K1z9/6oQ7/7nztc7mO5mvH7Wo+rLH65015/T7UrFN/HXyBWVv/KjOsMbP7m09Hzzaz9rllP9fhfxfhI40TuDaV/jM6/EOHaONThmifWzZnCNEfUemvHkL6/xE67/gpvlxH/0+HaJ/r9qoO//khwDMxy6+rOvzjhmqfD7dkqDb/PTr4Nh38BR0cfu/RavfTOvxXdfDaYdr4Sh08NIzEh69Vxiemw79LB//tMO1z6fKGa5+TN2c46c/qdvnicO1z7NYM17b77zr4YR38XR384+Ha5/aNG6HNX6aDL9fBvzaC9PNyOj8+Qx/YbMC4xnq+LBoOi2WRjR7RG/b5o2WRaLgp6G+NlcU8rZGgv8zT5C2vsgmeMji9qtQbieATrNhnp+VcZudCLN4kuIQMp3CX3rYGm00Q4EmwGAgJgrtyaThEDnIb9K6T2nJywtf1bAv5TDKzByFTCRtnBsUpb/ygVWkQ3VWCEAjjB9hw9N31bLsZBL96W8xgRFQ7dQYhorE55dOl+rfAfDrvfKULDdcZpYbrj1LD9Uep4TNFqeE6otRwXVFaeZ1RWnn9UVo52Mp7o2JMjDc3l3o5QbijZrngdjU0CgLXf/qnILYKXjjlM8ZpQILgCwvrg+EmT1DwieFoTPDE2zhvGDKU6PeVzp1fNVubSej/LUdAgY9u5MjvQb54a+tGJMJQQv9PQJRVEBYtd9Q5BefSWjjDFNecfqdeL1u0qMHZKDQ6qt1O4FCo8CkBfAggJ9TeudRR56rh4McjGVMfJWm3s0f90UMEvbE49obLSF3nyZIqrdpnk6qZtA9JVXCVzh/Uca/48MVs9cwRj1kXBzyHVVkHm42j0dE+JlKpG5/oSCF6CGPWUY2qy9knVKpbqf8wSLXoZziTVVVfOHZSrVXzzFZVpQY8Y3eZgHebCvGY35d9jqtSEznyUlWFAU7pVXdv3YN4tRo96zBPDSbtA3jVbYJqJQ/ZrKNrsxxE/6tjTI9iVav1xcJCC5oBgn52dNJp/O94tm/WOFMdj6uOS/YBtOqaN8ViTLNkjipWKxrcua12O3N0afZps5oDJOvo2WwlyvN3tbQoj3pWatA6IJqcyqoxgD7bMcWqwekPN6tzSeZEZmXd8KTw2c4rVtnE28Gz8sygjwvWyMMDHbKsYvfjnQ9aByhnN+bf4RxhdWVRJlZBipN70TV6yK76/OrsGVA+K1lj2iOHIWsESn0UtAYLe+yw8jI+BJhkiv8Gi16jdURlAAA='
bin = gzip.decompress(base64.b64decode(gz))
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
with open(pymain, "wb") as f:
    f.write(bin)
os.chmod(pymain, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)
if p == "":
    pymain = "./" + pymain
subprocess.call(pymain)


# compiled by pythran
'''
#pythran export main2()

def main2():
    stdin = open('/dev/stdin')
    print(stdin.readline().count('1'))
'''

Measured memory_bytes: 5076