{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# 1A.e - Correction de l'interrogation \u00e9crite du 14 novembre 2014\n", "\n", "co\u00fbt algorithmique, calcul de s\u00e9ries math\u00e9matiques"]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [{"data": {"text/html": ["
run previous cell, wait for 2 seconds
\n", ""], "text/plain": [""]}, "execution_count": 2, "metadata": {}, "output_type": "execute_result"}], "source": ["from jyquickhelper import add_notebook_menu\n", "add_notebook_menu()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Enonc\u00e9 1"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q1\n", "\n", "Le code suivant produit une erreur. Corrigez le programme."]}, {"cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [{"ename": "NameError", "evalue": "name 's' is not defined", "output_type": "error", "traceback": ["\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mnbs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m7\u001b[0m \u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mn\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mnbs\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0ms\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0mn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mNameError\u001b[0m: name 's' is not defined"]}], "source": ["nbs = [ 1, 5, 4, 7 ] #\n", "for n in nbs: #\n", " s += n #"]}, {"cell_type": "markdown", "metadata": {}, "source": ["L'objectif de ce petit programme est de calculer la somme des \u00e9l\u00e9ments de la liste ``nbs``. L'exception est d\u00e9clench\u00e9 la variable ``s`` n'est jamais cr\u00e9\u00e9. Il manque l'instruction ``s=0``."]}, {"cell_type": "code", "execution_count": 3, "metadata": {"collapsed": true}, "outputs": [], "source": ["nbs = [ 1, 5, 4, 7 ]\n", "s = 0\n", "for n in nbs:\n", " s += n"]}, {"cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [{"data": {"text/plain": ["17"]}, "execution_count": 5, "metadata": {}, "output_type": "execute_result"}], "source": ["s"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q2\n", "\n", "Que vaut ``nbs`` dans le programme suivant :"]}, {"cell_type": "code", "execution_count": 5, "metadata": {"collapsed": true}, "outputs": [], "source": ["def f(x) : return x%2\n", "nbs = { i:f(i) for i in range(0,5) }"]}, {"cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [{"data": {"text/plain": ["{0: 0, 1: 1, 2: 0, 3: 1, 4: 0}"]}, "execution_count": 7, "metadata": {}, "output_type": "execute_result"}], "source": ["nbs"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q3\n", "\n", "On consid\u00e8re le programme suivant, il affiche ``None``, pourquoi ?"]}, {"cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["2\n", "None\n"]}], "source": ["def ma_fonction(x1,y1,x2,y2):\n", " d = (x1-x2)**2 +(y1-y2)**2\n", " print(d)\n", "d = ma_fonction(0,0,1,1)\n", "print(d)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Le ``2`` correspond au premier ``print(d)``, le ``None`` correspond au second. Pour s'en convaincre, il suffit d'ajouter quelques caract\u00e8res suppl\u00e9mentaires :"]}, {"cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["A 2\n", "B None\n"]}], "source": ["def ma_fonction(x1,y1,x2,y2):\n", " d = (x1-x2)**2 +(y1-y2)**2\n", " print(\"A\",d)\n", "d = ma_fonction(0,0,1,1)\n", "print(\"B\",d)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Donc la variable ``d`` en dehors de la fonction vaut ``None``, cela veut que le r\u00e9sultat de la fonction ``ma_fonction`` est ``None``. Il peut \u00eatre ``None`` soit parce que la fonction contient explicitiement l'instruction ``return None`` soit parce qu'aucune instruction ``return`` n'ext ex\u00e9cut\u00e9e. C'est le cas ici puisqu'il n'y a qu'une instruction ``print``. On remplace ``print`` par ``return``."]}, {"cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["2\n"]}], "source": ["def ma_fonction(x1,y1,x2,y2):\n", " d = (x1-x2)**2 +(y1-y2)**2\n", " return d\n", "d = ma_fonction(0,0,1,1)\n", "print(d)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q4\n", "\n", "Que vaut ``n`` en fonction de ``N`` ?"]}, {"cell_type": "code", "execution_count": 10, "metadata": {"collapsed": true}, "outputs": [], "source": ["n = 0\n", "N = 100\n", "for i in range(0,N):\n", " for k in range(0,i):\n", " n += N"]}, {"cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [{"data": {"text/plain": ["495000"]}, "execution_count": 12, "metadata": {}, "output_type": "execute_result"}], "source": ["n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Pour \u00eatre plus pr\u00e9cis, 495000 = $\\frac{N^2(N-1)}{2}$."]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q5\n", "\n", "Une des lignes suivantes provoque une erreur, laquelle ?"]}, {"cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [{"ename": "TypeError", "evalue": "unsupported operand type(s) for +: 'int' and 'str'", "output_type": "error", "traceback": ["\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m3\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"6\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0ma\u001b[0m\u001b[1;33m+\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[0ma\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'int' and 'str'"]}], "source": ["a = 3 #\n", "b = \"6\" #\n", "a+b #\n", "a*b #"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Lorsqu'on multiplie une cha\u00eene de caract\u00e8res par un entier, cela revient \u00e0 la r\u00e9pliquer : ``3*\"6\" = \"666\"``. L'addition est impossible car on ne peut pas additionner un nombre avec une cha\u00eene de caract\u00e8res."]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Enonc\u00e9 2"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q1\n", "\n", "Le code suivant produit une erreur. Proposez une correction."]}, {"cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [{"ename": "TypeError", "evalue": "'tuple' object does not support item assignment", "output_type": "error", "traceback": ["\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mnbs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m7\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mnbs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"]}], "source": ["nbs = ( 1, 5, 4, 7 ) #\n", "nbs[0] = 0 #"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Le type [tuple](https://docs.python.org/3.4/tutorial/datastructures.html#tuples-and-sequences) sont [immutable](http://fr.wikipedia.org/wiki/Objet_immuable). On ne peut pas le modifier. Mais les listes peuvent l'\u00eatre."]}, {"cell_type": "code", "execution_count": 14, "metadata": {"collapsed": true}, "outputs": [], "source": ["nbs = [ 1, 5, 4, 7 ]\n", "nbs[0] = 0"]}, {"cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [{"data": {"text/plain": ["[0, 5, 4, 7]"]}, "execution_count": 16, "metadata": {}, "output_type": "execute_result"}], "source": ["nbs"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q2\n", "\n", "Que vaut ``c`` ?"]}, {"cell_type": "code", "execution_count": 16, "metadata": {"collapsed": true}, "outputs": [], "source": ["d = {4: 'quatre'}\n", "c = d.get('4', None)"]}, {"cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["None\n"]}], "source": ["print(c)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["La m\u00e9thode [get](https://docs.python.org/3.4/library/stdtypes.html#dict.get) retourne la valeur associ\u00e9e \u00e0 une cl\u00e9 ou une autre valeur (ici ``None``) si elle ne s'y trouve pas. La raison pour laquelle le r\u00e9sultat est ``None`` ici est que '4' != 4. La cl\u00e9 '4' ne fait pas partie du dictionnaire."]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q3\n", "\n", "Que vaut ``x`` ?"]}, {"cell_type": "code", "execution_count": 18, "metadata": {"collapsed": true}, "outputs": [], "source": ["N = 8\n", "s = 0\n", "while N > 0 :\n", " for i in range(N):\n", " s += 1\n", " N //= 2\n", "x = (s+1)//2"]}, {"cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [{"data": {"text/plain": ["8"]}, "execution_count": 20, "metadata": {}, "output_type": "execute_result"}], "source": ["x"]}, {"cell_type": "markdown", "metadata": {}, "source": ["A chaque passage dans la boucle ``for``, on ajoute ``N`` \u00e0 ``s``. A chaque passage dans la boucle ``while``, on divise ``N`` par 2. Donc, apr\u00e8s la boucle ``while``, $s = N + N/2 + N/4 + N/8 + ...$. On r\u00e9p\u00e8te cela jusqu'\u00e0 ce que $N / 2^k$ soit plus grand que 0. Or, les divisions sont enti\u00e8res (symbole ``//``), ``1//2`` vaut 0. La condition devient jusqu'\u00e0 ce que $N / 2^k <1$. \n", "\n", "Pour le reste, c'est une suite g\u00e9om\u00e9trique. Si on pose $N=2^k$, on calcule donc la somme :\n", "\n", "$$s = 2^k + 2 ^{k-1} + ... + 1 = \\sum_{i=1}^{k} 2^i = \\frac{2^{k+1}-1}{2-1} = 2^{k+1}-1$$\n", "\n", "Et comme :\n", "\n", "$$x = \\frac{s+1}{2} = 2^k = N$$"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q4\n", "\n", "Que vaut ``c`` ?"]}, {"cell_type": "code", "execution_count": 20, "metadata": {"collapsed": true}, "outputs": [], "source": ["l = ['a', 'b', 'c']\n", "c = l[1]"]}, {"cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [{"data": {"text/plain": ["'b'"]}, "execution_count": 22, "metadata": {}, "output_type": "execute_result"}], "source": ["c"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q5\n", "\n", "Par quoi faut-il remplacer les ``???`` pour avoir l'erreur ci-dessous ?"]}, {"cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [{"ename": "AttributeError", "evalue": "'NoneType' object has no attribute 'append'", "output_type": "error", "traceback": ["\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mli\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[0mma_liste\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfonction\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 9\u001b[1;33m \u001b[0mma_liste\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'append'"]}], "source": ["def fonction(N):\n", " li = None # on \u00e9vite la variable l pour ne pas la confondre avec 1\n", " for i in range(N):\n", " if li is None: \n", " li = [ ]\n", " li.append(i)\n", " return li\n", "ma_liste = fonction(0)\n", "ma_liste.append(-1)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Cette erreur se produit car ``ma_liste`` vaut ``None``. Si la fonction ``fonction`` retourne ``None``, c'est que l'instruction ``l = [ ]`` n'est jamais ex\u00e9cut\u00e9e, donc que la condition ``if l is None`` n'est jamais v\u00e9rifi\u00e9e. On ne passe donc jamais dans la boucle ``for`` et ceci arrive si ``N`` est n\u00e9gatif ou nul."]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Enonc\u00e9 3"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q1\n", "\n", "Que se passe-t-il ?"]}, {"cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["0\n", "1\n", "2\n"]}, {"ename": "IndexError", "evalue": "list assignment index out of range", "output_type": "error", "traceback": ["\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ml\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mdel\u001b[0m \u001b[0ml\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mIndexError\u001b[0m: list assignment index out of range"]}], "source": ["l = [ 0, 1,2,3]\n", "for i in range(len(l)):\n", " print(i)\n", " del l[i] #"]}, {"cell_type": "markdown", "metadata": {}, "source": ["L'erreur est due au fait que la boucle parcourt la liste en m\u00eame temps qu'elle supprime des \u00e9l\u00e9ments. Le r\u00e9sultat est souvent une erreur. On v\u00e9rifie en affichant ``i`` et ``l``."]}, {"cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["i= 0 l= [0, 1, 2, 3]\n", "i= 1 l= [1, 2, 3]\n", "i= 2 l= [1, 3]\n"]}, {"ename": "IndexError", "evalue": "list assignment index out of range", "output_type": "error", "traceback": ["\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ml\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"i=\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\"l=\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0ml\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mdel\u001b[0m \u001b[0ml\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mIndexError\u001b[0m: list assignment index out of range"]}], "source": ["l = [ 0, 1,2,3]\n", "for i in range(len(l)):\n", " print(\"i=\",i,\"l=\",l)\n", " del l[i] #"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q2\n", "\n", "Que vaut ``a`` ?"]}, {"cell_type": "code", "execution_count": 25, "metadata": {"collapsed": true}, "outputs": [], "source": ["a = 2\n", "for i in range(1,5):\n", " a += a"]}, {"cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [{"data": {"text/plain": ["32"]}, "execution_count": 27, "metadata": {}, "output_type": "execute_result"}], "source": ["a"]}, {"cell_type": "markdown", "metadata": {}, "source": ["La variable ``a`` double \u00e0 chaque fois qu'on passe dans la boucle. On y passe **4** fois et on part de ``a=2``. Donc : $2*2*2*2*2=2^5=32$."]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q3\n", "\n", "Que vaut ``y`` ?"]}, {"cell_type": "code", "execution_count": 27, "metadata": {"collapsed": true}, "outputs": [], "source": ["x = 2.67\n", "y = int ( x * 2 ) / 2"]}, {"cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [{"data": {"text/plain": ["2.5"]}, "execution_count": 29, "metadata": {}, "output_type": "execute_result"}], "source": ["y"]}, {"cell_type": "markdown", "metadata": {}, "source": ["La fonction revient \u00e0 arrondir au demi inf\u00e9rieur, donc $2.5$."]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q4\n", "\n", "Combien d'\u00e9toiles le programme suivant affiche ?"]}, {"cell_type": "code", "execution_count": 29, "metadata": {"scrolled": true}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n"]}, {"name": "stdout", "output_type": "stream", "text": ["*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "*\n", "0.26184474654812057\n"]}], "source": ["import random\n", "\n", "def moyenne(l):\n", " s = 0\n", " for x in l :\n", " print(\"*\")\n", " s += x\n", " return s / len(l)\n", "def variance(l):\n", " return sum ( [ (x - moyenne(l))**2 for x in l ] ) / len(l)\n", "l = [ random.random() for i in range(0,100) ]\n", "print(variance(l)**0.5)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["C'est un peu long \u00e0 afficher, modifions le programme pour compter les \u00e9toiles plut\u00f4t que de les afficher."]}, {"cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["0.29749469599416334\n", "star= 10000\n"]}], "source": ["star = 0\n", "def moyenne(l):\n", " global star\n", " s = 0\n", " for x in l :\n", " star += 1\n", " s += x\n", " return s / len(l)\n", "def variance(l):\n", " return sum ( [ (x - moyenne(l))**2 for x in l ] ) / len(l)\n", "l = [ random.random() for i in range(0,100) ]\n", "print(variance(l)**0.5)\n", "print(\"star=\",star)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Si $n$ est la longueur de la liste ``l``, le co\u00fbt de la fonction ``moyenne`` est $O(n)$. Le co\u00fbt de la fonction ``variance`` est $n$ fois le co\u00fbt de la fonction ``moyenne``, soit $O(n^2)$. Celle-ci pourrait \u00eatre beaucoup plus efficace en \u00e9crivant :"]}, {"cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["0.305837286201697\n", "star= 100\n"]}], "source": ["star = 0\n", "def moyenne(l):\n", " global star\n", " s = 0\n", " for x in l :\n", " star += 1\n", " s += x\n", " return s / len(l)\n", "def variance(l):\n", " m = moyenne(l) # on m\u00e9morise le r\u00e9sultat\n", " return sum ( [ (x - m)**2 for x in l ] ) / len(l)\n", "l = [ random.random() for i in range(0,100) ]\n", "print(variance(l)**0.5)\n", "print(\"star=\",star)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Q5\n", "\n", "Que vaut ``x`` ?"]}, {"cell_type": "code", "execution_count": 32, "metadata": {"collapsed": true}, "outputs": [], "source": ["import random\n", "x = random.randint(0,100)\n", "while x != 50:\n", " x = random.randint(0,100)"]}, {"cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [{"data": {"text/plain": ["50"]}, "execution_count": 34, "metadata": {}, "output_type": "execute_result"}], "source": ["x"]}, {"cell_type": "markdown", "metadata": {}, "source": ["``x`` vaut n\u00e9cessairement 50 puisque c'est la seule valeur qui permette de sortir de la boucle."]}, {"cell_type": "code", "execution_count": 34, "metadata": {"collapsed": true}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": 35, "metadata": {"collapsed": true}, "outputs": [], "source": []}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1"}}, "nbformat": 4, "nbformat_minor": 2}