#include <bits/stdc++.h>
using namespace std;
long long int mod = 1000000007;
int isPali(string str) {
  string u;
  for (int i = str.length() - 1; i >= 0; i--) {
    u += str[i];
  }
  if (u == str) {
    return 1;
  }
  return 0;
}
long long int power(long long int a, long long int n) {
  long long int res = 1;
  if (n == 0) {
    return 1;
  }
  if (n % 2 == 0) {
    res = ((1 << (n / 2)) % mod);
    return res * res;
  } else {
    res = ((1 << (n / 2)) % mod);
    return ((res % mod) * (res % mod) * (a % mod)) % mod;
  }
}
long long int gcd(long long int a, long long int b) {
  if (b != 0) {
    return gcd(b, a % b);
  } else {
    return a;
  }
}
long long int lcm(long long int a, long long int b) {
  return (a * b) / gcd(a, b);
}
bool checkPrimeNumber(int n) {
  bool isPrime = true;
  if (n == 0 || n == 1) {
    isPrime = false;
  } else {
    for (int i = 2; i <= n / 2; ++i) {
      if (n % i == 0) {
        isPrime = false;
        break;
      }
    }
  }
  return isPrime;
}
bool isPerfectSquare(long double x) {
  if (x >= 0) {
    long long sr = sqrt(x);
    return (sr * sr == x);
  }
  return false;
}
bool CompFloat(float a, float b) {
  if (abs(a - b) < 1e-9) {
    return true;
  } else {
    return false;
  }
}
long long int cel(long long int a, long long int b) { return (a + b - 1) / b; }
void solve() {}
int main() {
  long long int n, i, sum = 0, count = 0, s = 0;
  cin >> n;
  long long int arr[n];
  for (i = 0; i < n; i++) {
    cin >> arr[i];
    sum += arr[i];
  }
  sort(arr, arr + n);
  for (i = n - 1; sum >= s; i--) {
    s += arr[i];
    sum -= arr[i];
    count++;
  }
  cout << count;
}
