//201912-1
#include <bits/stdc++.h>
using namespace std;
bool havaSeven(int num){while (num){
if (num % 10 == 7)
return true;
num /= 10;}
return false;}int main(){
int n;scanf("%d", &n);
int arr[4] ={0};
for (int i = 1; i <= n; i++)
if (i % 7 == 0 || havaSeven(i))
arr[(i - 1) % 4]++, n++;
for (auto it:arr)printf("%d\n", it);
return 0;}
//201912-2
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;scanf("%d", &n);
map<pair<int, int>, int> m;
pair<int, int> p[n];
int x, y;
//录入坐标
for (int i = 0; i < n; i++){scanf("%d%d", &x, &y);
p[i] = make_pair(x, y);
m[p[i]]++;}int result[5] ={0};
for (int i = 0; i < n; i++){
int x = p[i].first, y = p[i].second;
if (m[make_pair(x - 1, y)] && m[make_pair(x + 1, y)] && m[make_pair(x, y - 1)] && m[make_pair(x, y + 1)])
result[m[make_pair(x - 1, y - 1)] + m[make_pair(x - 1, y + 1)] + m[make_pair(x + 1, y + 1)] +
m[make_pair(x + 1, y - 1)]]++;}
for (auto it:result)printf("%d\n", it);
return 0;}
//201912-2
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;scanf("%d", &n);
set<pair<int, int>> s;
while (n--){
int x, y;scanf("%d%d", &x, &y);
s.insert(make_pair(x, y));}
vector<int> v(5);
for (auto it:s){
int x = it.first, y = it.second;
if (s.count(make_pair(x + 1, y)) && s.count(make_pair(x - 1, y)) && s.count(make_pair(x, y + 1)) &&
s.count(make_pair(x, y - 1)))
v[s.count(make_pair(x - 1, y - 1)) + s.count(make_pair(x - 1, y + 1)) + s.count(make_pair(x + 1, y - 1)) +
s.count(make_pair(x + 1, y + 1))]++;}
for (auto it:v)printf("%d\n", it);
return 0;}