#include <bits/stdc++.h>
const int MOD = 1e9 + 7;
inline int addmod(int a, int b) { return (a + b) % MOD; }
const int MAXN = 105;
const int MAXM = 10005;
int cnt[MAXN];
int n, a[MAXN];
int f[MAXN][MAXM];
int com[MAXN][MAXN];
int main() {
  for (int i = 0; i < MAXN; i++) {
    com[i][0] = 1;
    for (int j = 1; j <= i; j++) {
      com[i][j] = addmod(com[i - 1][j], com[i - 1][j - 1]);
    }
  }
  scanf("%d", &n);
  f[0][0] = 1;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    cnt[a[i]]++;
    for (int x = 100; x >= 1; x--) {
      for (int y = a[i]; y <= 10000; y++)
        f[x][y] = addmod(f[x][y], f[x - 1][y - a[i]]);
    }
  }
  int tot = 0;
  for (int i = 0; i < MAXN; i++)
    if (cnt[i] > 0) tot++;
  int ans = 0;
  for (int i = 0; i <= 100; i++) {
    int sum = 0;
    for (int j = 1; j <= cnt[i]; j++) {
      sum += i;
      if (f[j][sum] == com[cnt[i]][j]) {
        ans = std::max(ans, j);
        if (j == cnt[i] && tot == 2) ans = n;
      }
    }
  }
  printf("%d\n", ans);
  return 0;
}
