#include<iostream>
#include<set>
#include<algorithm>
using namespace std;

int main()
{
    int n, q, x, y;

    multiset<int> a;

    cin >> n;

    for( int i = 0; i < n; i++ )
    {
        cin >> q >> x;
        if( q == 0 )
        {
            a.insert(x);
            cout << a.size() << endl;
        }
        else if( q == 1 )
            cout << a.count(x) << endl;                                 //countという、指定された値の個数を返す関数もある。setは重複を許さないので0 or 1が返る。
        else if( q == 2 )
            a.erase(x);
        else
        {
            cin >> y;
            multiset<int>::iterator l = a.lower_bound(x), r = a.upper_bound(y);
            for(; l != r; l++ )
                cout << *l << endl;
        }
    }
    return 0;
}
