#include <bits/stdc++.h>
using namespace std;
template <class T>
T abst(const T &n) {
  return (n < 0 ? -n : n);
}
template <class T>
T max2(const T &a, const T &b) {
  return (!(a < b) ? a : b);
}
template <class T>
T min2(const T &a, const T &b) {
  return (a < b ? a : b);
}
template <class T>
T max3(const T &a, const T &b, const T &c) {
  return max2(a, max2(b, c));
}
template <class T>
T min3(const T &a, const T &b, const T &c) {
  return min2(a, min2(b, c));
}
template <class T>
T gcd(const T a, const T b) {
  return (b ? gcd<T>(b, a % b) : a);
}
template <class T>
T lcm(const T a, const T b) {
  return (a / gcd<T>(a, b) * b);
}
template <class T>
T mod(const T &a, const T &b) {
  return (a < b ? a : a % b);
}
template <class T>
bool inrange(const T &a, const T &b, const T &c) {
  return a <= b && b <= c;
}
template <class T>
T sq(const T &x) {
  return x * x;
}
const int INF = 0x7f7f7f7f;
void solve() {
  int n;
  cin >> n;
  int a[n];
  int sum = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    sum += a[i];
  }
  sort(a, a + n, greater<int>());
  int s = 0;
  for (int i = 0; i < n; i++) {
    s += a[i];
    if (s > sum / 2) {
      cout << i + 1 << "\n";
      return;
    }
  }
  return;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  solve();
  return 0;
}
