#include <stdio.h>

int main(int argc, char** argv)
{
    int kolakoski[101] = {0};
    kolakoski[0] = 1;
    kolakoski[1] = 2;

    int index = 1;
    int len = 2;

    while (len < 100)
    {
        int current_len = kolakoski[index];
        int last_len = kolakoski[index - 1];
        int last = kolakoski[len - 1];
        int last_influenced = !(index == len - 1);

        if (current_len == 1)
        {
            kolakoski[len++] = 3 - last;
        }
        else
        {
            if (last_len == 1 && last_influenced == 0)
            {
                kolakoski[len++] = last;
            }
            else
            {
                kolakoski[len++] = 3 - last;
                kolakoski[len++] = 3 - last;
            }
        }
        ++index;
    }

    for(int i = 0; i < 100; ++i)
    {
        printf("%d ", kolakoski[i]);
    }
    printf("\n");
    return 0;
}
