#include <bits/stdc++.h>
using namespace std;
int n,m;
struct node{
int num,vis;
};
node x[40005];
bool cmp(node x,node y){
return x.num<y.num;
}
int mp[400005][5];
vector<int> s[400005];
int main(){
cin>>n>>m;
for (int i=1;i<=m;i++){
cin>>x[i].num;
x[i].vis=i;
s[x[i].num].push_back(i);
}
stable_sort(x+1,x+m+1,cmp);
for (int i=1;i<=m;i++){
for (int j=i+1;j<=m;j++){
if (x[i].num>=x[j].num) continue;
if (x[j].num-x[i].num%2==1) continue;
for (int k=j+1;k<=m;k++){
if ((x[j].num-x[i].num)*3>=(x[k].num-x[j].num)){
continue;
}
if (x[j].num==x[k].num) continue;
int hi=(x[j].num-x[i].num)/2+x[k].num;
if (s[hi].size()==0) continue;
if (hi<=x[k].num) continue;
if ((hi-x[k].num)*2!=(x[j].num-x[i].num)) continue;
mp[x[i].vis][1]++;
mp[x[j].vis][2]++;
mp[x[k].vis][3]++;
for (int is=0;is<s[hi].size();is++){
mp[s[hi][is]][4]++;
}
}
}
}
for (int i=1;i<=m;i++){
for (int j=1;j<=4;j++){
cout<<mp[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
record