#include <bits/stdc++.h>
using namespace std;

int main() 
{
    // index    1   2    3   4   5  6   7   8   9
    int b[10] = {0, 5 , 5 , 5 , 3 , 3 , 2 , 2 , 1 , 1};
    int n = 9;

    /*
    Element , frequency 
           5             3   --> index 3
           3             2   --> index 2
           2             2   --> index 1
           1             2   --> index 0
    */

    unordered_map<int,int>k;

    for(int i=1; i<=n; i++)
    {
        k[b[i]] = k[b[i]] + 1;
    }

    /*
      <(5,3)<5 , 3>>g; // g(5,3)
      <(3,2)<3 , 2>g; // g(3,2)
      <(2,2)<2 , 2>g; // g(2,2)
      <(1,2)<1 , 2>g; // g(1,2)
    */

    vector<pair<int,int>>g;

    for(auto u=k.begin(); u!=k.end(); u++)
    {
        //                     Element  Frequency
        g.push_back({u->first, u->second});
    }

    int size = g.size(); // map size -> 4
    int step = 0;

    for(int i=size - 1; i>=1; i--)
    {
        // iteration 3:
        // 4 - 1 = 3
        // i = 3
        //
        // g[i-1].second = g[3-1].second = g[2].second
        // g[2].second = 2 (frequency of element 3)
        //
        // g[i].second = g[3].second
        // g[3].second = 3 (frequency of element 5)
        //
        // g[2].second = g[2].second + g[3].second
        // g[2].second = 2 + 3 = 5
        //
        // step = 0
        // step = step + g[3].second
        // step = 0 + 3 = 3
        //
        // We reset the frequency at index 3 to zero because
        // its frequency has already been transferred to index 2.
        //
        // map now becomes {2, 2, 5, 0}


        // iteration 2:
        // 3 - 1 = 2
        // i = 2
        //
        // g[i-1].second = g[2-1].second = g[1].second
        // g[1].second = 2 (frequency of element 2)
        //
        // g[i].second = g[2].second
        // g[2].second = 5 (updated frequency of element 3)
        //
        // g[1].second = g[1].second + g[2].second
        // g[1].second = 2 + 5 = 7
        //
        // step = 3
        // step = step + g[2].second
        // step = 3 + 5 = 8
        //
        // We reset the frequency at index 2 to zero because
        // its frequency has already been transferred to index 1.
        //
        // map now becomes {2, 7, 0, 0}


        // iteration 1:
        // 2 - 1 = 1
        // i = 1
        //
        // g[i-1].second = g[1-1].second = g[0].second
        // g[0].second = 2 (frequency of element 1)
        //
        // g[i].second = g[1].second
        // g[1].second = 7 (updated frequency of element 2)
        //
        // g[0].second = g[0].second + g[1].second
        // g[0].second = 2 + 7 = 9
        //
        // step = 8
        // step = step + g[1].second
        // step = 8 + 7 = 15
        // We reset the frequency at index 1 to zero because
        // its frequency has already been transferred to index 0.
        //
        // map now becomes {9, 0, 0, 0}


        //       previous index element freq   current index element freq
        g[i-1].second = g[i-1].second + g[i].second;

        step = step + g[i].second;

        g[i].second = 0;
    }

    cout << step << endl;

    return 0;
}