/*
ZADATAK: igra
JEZIK: c
*/
#include <math.h>
#include "vstrumf.h"

#define kapacitet 4000000 //65537

int h, n, br_listova;
int stablo[kapacitet];  // stablo[1] je koren, deca cvora k su na lokacijama 2*k i 2*k+1, roditelj cvor k je na lokaciji k/2
                    // element je -1 ako je cvor neodredjen, 0 ili 1 ako je odredjen

int odrediVrednost(int poz)
{
    int k = poz + br_listova - 1, k1, k2;
    int v1 = 1;
    int odredjeno = 1;
    int nebitno = 0;

    while ((k > 1) && odredjeno && !nebitno)
    {
        k1 = k;
        k = k / 2;
        if (stablo[k] > -1)
            nebitno = 1;
        else
        {
            if (k1 == 2 * k)
                k2 = k1 + 1;
            else
                k2 = k1 - 1;
            if (stablo[k2] > -1)
            {
                v1 = 1 - v1;
                if (k == 1)
                    nebitno = 1;
            }
            else
                odredjeno = 0;
        }
    }
    if (!nebitno)
        if (!odredjeno)
            stablo[k1] = 1;
    return v1;
}

int main()
{
    int i, poz;

    h = pocniIgru();
    br_listova = pow(2.0, h);
    n = 2 * br_listova - 1;
    for (i = 1; i <= n; i++)
        stablo[i] = -1;

    poz = pitajVelikogStrumfa(0);
    while (poz > -1)
        poz = pitajVelikogStrumfa(odrediVrednost(poz));

    return 0;
}