#include "encoder.h"
#include "encoderlib.h"
using namespace std;
void encode(int N, int M[]){
for (int i=0;i<N;i++){
for (int j=0;j<8;j++){
if ((M[i]>>j)&1){
int a = (j<<5);
a += i;
//cout << a << "\n";
send(a);
}
}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <vector>
using namespace std;
void decode(int N, int L, int X[]){
vector<int> arr(N,0);
//cout << "\n";
for(int i=0; i<L; i++) {
int idx=0, pos=0;
for (int j=0;j<8;j++){
if (j<5){
if ((X[i]>>j)&1){
idx+=(1<<j);
}
}else{
if ((X[i]>>j)&1){
pos+=(1<<(j-5));
}
}
}
//cout << idx << " " << pos << "\n";
arr[idx]+=(1<<pos);
}
for (int i:arr){
output(i);
}
}