#include <stdio.h>
#include <stdlib.h>
#include <deque>
#include <algorithm>

using namespace std;

struct huffman{
    int freq;
    int index;
    huffman *left;
    huffman *right;
};
huffman *temp;
deque<huffman *> littleTree;

bool compare(huffman *a, huffman *b) {
    return a->freq<b->freq;
}


int main() {
    
    int n, i;
    int f[101];
    
    scanf("%d",&n);
    
    //輸入頻率  把每個頻率都建成一個節點
    /*      freq
           /    \
         NULL  NULL
     */
    for (i=1; i<=n; i++) {
        scanf("%d",&f[i]);
        temp=new huffman;
        temp->freq=f[i];
        temp->index=i;
        temp->left=NULL;
        temp->right=NULL;
        littleTree.push_back(temp);
    }
    //排序後把兩個最小的取出來  合併成一個新節點
    for (i=1; i<=n-1; i++) {
        sort(littleTree.begin(), littleTree.end(), compare);
        temp=new huffman;
        temp->freq=littleTree[0]->freq+littleTree[1]->freq;
        temp->index=0;
        temp->left=littleTree[0];
        temp->right=littleTree[1];
        littleTree.pop_front();
        littleTree.pop_front();
        littleTree.push_back(temp);
    }//huffman tree = littleTree[0]
    
    printf("%d\n",n);
    
    //輸出 huffman code
    return 0;
}