#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include "transmission.h"
#define pb push_back
#define mp make_pair
#define ll long long
using namespace std;
const int N = 1e5 + 5;
const int MAXJUMPS = 88;
const int NEED = 9;

static vector<bool> data;

bool used[N];
vector<bool> receive(const vector<bool>& message, int n, int d)
{
    int m = message.size();

    for(int i = 0; i < m; i++)
    {
        int streak = 0;
        vector <int> rem;
        for(int j = i; j >= max(0, i - MAXJUMPS); j--)
        {
            if(message[i] != message[j])
                break;
            if(used[j])
                continue;

            rem.pb(j);
            streak++;
            if(streak == NEED)
                break;
        }

        if(streak == NEED)
        {
            for(auto x: rem)
                used[x] = true;
            data.pb(message[i]);
        }
        if(data.size() == n)
            break;
    }

    while((int)data.size() < n)
        data.pb(rand() % 2);

    return data;
}


