#include <bits/stdc++.h>
using namespace std;

int main() {
    
    
        int n, m;
        cin >> n >> m;                                  
        vector<int> arr(m + 1);

        vector<long long> a(m + 2);                      
        vector<long long> k(m + 2);

        long long tot_a = 0;                             
        long long tot_k = 0;

        for (int i = 1; i <= m; i++) {
            cin >> arr[i];

            if (arr[i] == 1) {
                a[i] = i;                                
                tot_a++;
            }
            else if (arr[i] == 2) {
                k[i] = i;                                
                tot_k++;
            }
            else if (arr[i] == 3) {
                a[i] = i;                                
                k[i] = i;                                
                tot_k++;
                tot_a++;
            }
        }

        
        vector<long long> prefix_a(m + 2), prefix_k(m + 2), suffix_a(m + 2), suffix_k(m + 2);

        for (int i = 1; i <= m; i++) {
            prefix_a[i] = prefix_a[i - 1] + a[i];
            prefix_k[i] = prefix_k[i - 1] + k[i];
        }
        for (int i = m; i >= 1; i--) {                   
            suffix_a[i] = suffix_a[i + 1] + a[i];
            suffix_k[i] = suffix_k[i + 1] + k[i];
        }

        long long x = 0;
        long long y = 0;

        for (int i = 1; i <= m; i++) {

            if (arr[i] == 1 || arr[i] == 3) x++;         
            if (arr[i] == 2 || arr[i] == 3) y++;        

            long long left  = i * x - prefix_a[i];
            long long right = suffix_a[i + 1] - i * (tot_a - x);
            long long r1 = left + right;

            long long l = i * y - prefix_k[i];            
            long long r = suffix_k[i + 1] - i * (tot_k - y);
            long long r2 = l + r;

            cout << (long long)abs(r1 - r2) << " ";    
            
 

     
    }
}