#include <iostream>
#include <string>
#include <algorithm>
#include <functional>
#include <vector>
#include <utility>
#include <cstring>
#include <iomanip>
#include <numeric>
#include <cmath>
#include <cassert>
using namespace std;
using ll = long long;
const int INF = 1<<30;
const int MOD = (int)1e9 + 7;
const int MAX_N = (int)1e5 + 5;
#define debug(x) cout << #x << ": " << x << endl
template<typename T1, typename T2>
ostream &operator<<(ostream &os, const pair<T1, T2>& p) { os << p.first << " " << p.second; return os; }
template<typename T>
ostream &operator<<(ostream &os, const vector<T> &v) { for(int i = 0; i < (int) v.size(); i++) os << v[i] << (i + 1 != v.size() ? " " : ""); return os; }
signed main(void)
{
    cin.tie(0);
    ios::sync_with_stdio(false);
    double l, r;
    int s[4] = {}, t[4] = {};
    while(cin >> l >> r)
    {
        if(l >= 1.1) s[0]++;
        else if(l >= 0.6) s[1]++;
        else if(l >= 0.2) s[2]++;
        else s[3]++;
        if(r >= 1.1) t[0]++;
        else if(r >= 0.6) t[1]++;
        else if(r >= 0.2) t[2]++;
        else t[3]++;
    }
    for(int i = 0; i < 4; i++)
    {
        cout << s[i] << " " << t[i] << endl;
    }
    return 0;
}


