#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n;
int coins[1001];
bool dp[50001];
int totalSum;
vector<int> sol;
int main() {
fin>>n;
for(int i = 1; i <= n; i++)
fin>>coins[i];
sort(coins + 1, coins + n + 1);
dp[0] = true;
for (int i = 1; i <= n ; i++) {
if (dp[coins[i]])
continue;
sol.push_back(coins[i]);
for (int j = coins[i]; j <= 50000; j++)
if (dp[j - coins[i]])
dp[j] = true;
}
fout<<sol.size()<<"\n";
for(int i : sol)
fout<<i<<"\n";
return 0;
}