/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
Scanner sc
= new Scanner
(System.
in);
int m = sc.nextInt();
int n = sc.nextInt();
int arr[] = new int[n+1];
for(int i=1;i<=n;i++) arr[i]=sc.nextInt();
int arsi[] = new int[n+15];
int krypto[] = new int[n+15];
int ac=0,kc=0;
for(int i=1;i<=n;i++){
if(arr[i]==1 || arr[i]==3){
arsi[i]=i;
ac++;
}
if(arr[i]==2 || arr[i]==3){
krypto[i]=i;
kc++;
}
}
int prefixA[] = new int[n+15];
int prefixK[] = new int[n+15];
for(int i=1;i<=n;i++){
prefixA[i]=prefixA[i-1]+arsi[i];
prefixK[i]=prefixK[i-1]+krypto[i];
}
int suffixA[] = new int[n+15];
int suffixK[] = new int[n+15];
for(int i=n;i>=1;i--){
suffixA[i]=suffixA[i+1]+arsi[i];
suffixK[i]=suffixK[i+1]+krypto[i];
}
List<Integer> result = new ArrayList<>();
int ca=0,ck=0;
for(int i=1;i<=n;i++){
if(arsi[i]>0){
ca++;
}
int la = i*ca - prefixA[i];
int lb = suffixA[i] - i*ac;
int ra = la+lb;
if(arsi[i]>0) ac--;
if(krypto[i]>0){
ck++;
}
int lk = i*ck - prefixK[i];
int lka = suffixK[i] - i*kc;
int rk = lk+lka;
if(krypto[i]>0) kc--;
result.
add(Math.
abs(rk
-ra
)); }
}
}