#include <iostream>
using namespace std;

void partition(int *a, int n, int pivot, int &lessCount, int &equalCount)
{
    int *tmp = new int[n];
    int k = 0;

    lessCount = 0;
    equalCount = 0;

    for (int i = 0; i < n; i++)          
        if (a[i] < pivot) {
            tmp[k++] = a[i];
            lessCount++;
        }
    for (int i = 0; i < n; i++)          
        if (a[i] == pivot) {
            tmp[k++] = a[i];
            equalCount++;
        }
    for (int i = 0; i < n; i++)          
        if (a[i] > pivot)
            tmp[k++] = a[i];

    for (int i = 0; i < n; i++)
        a[i] = tmp[i];

    delete[] tmp;
}

int main()
{
    int n, pivot, lessCount, equalCount;

    cin >> n;
    int *a = new int[n];
    for (int i = 0; i < n; i++)
        cin >> a[i];
    cin >> pivot;

    partition(a, n, pivot, lessCount, equalCount);

    cout << "Rearranged:";
    for (int i = 0; i < n; i++)
        cout << " " << a[i];
    cout << "\n";
    cout << "Less: " << lessCount << ", Equal: " << equalCount
         << ", Greater: " << n - lessCount - equalCount << "\n";

    delete[] a;
    return 0;
}
