#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e2 + 5, MaxV=1e5+5;
long long n, a[MaxN], dp[MaxV];
void input()
{
cin >> n;
for (long long i=1; i<=n; i++)
{
cin >> a[i];
}
}
void solve()
{
memset(dp,0,sizeof(dp));
long long cnt =0;
dp[0]=1;
for (long long i=1; i<=n; i++)
{
for (long long j=MaxV; j>=0; j--)
{
if(dp[j]==1&&dp[j+a[i]]==0)
{
dp[j+a[i]]=1;
cnt++;
}
}
}
cout << cnt << "\n";
for (long long i=1; i<=MaxV; i++)
{
if(dp[i]==1)
{
cout << i << " ";
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbG9uZyBsb25nIE1heE4gPSAxZTIgKyA1LCBNYXhWPTFlNSs1Owpsb25nIGxvbmcgbiwgYVtNYXhOXSwgZHBbTWF4Vl07CnZvaWQgaW5wdXQoKQp7CiAgICBjaW4gPj4gbjsKICAgIGZvciAobG9uZyBsb25nIGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQp9CnZvaWQgc29sdmUoKQp7CiAgICBtZW1zZXQoZHAsMCxzaXplb2YoZHApKTsKICAgIGxvbmcgbG9uZyBjbnQgPTA7CiAgICBkcFswXT0xOwogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChsb25nIGxvbmcgaj1NYXhWOyBqPj0wOyBqLS0pCiAgICAgICAgewogICAgICAgICAgICBpZihkcFtqXT09MSYmZHBbaithW2ldXT09MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZHBbaithW2ldXT0xOwogICAgICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBjbnQgPDwgIlxuIjsKICAgIGZvciAobG9uZyBsb25nIGk9MTsgaTw9TWF4VjsgaSsrKQogICAgewogICAgICAgIGlmKGRwW2ldPT0xKQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCBpIDw8ICIgIjsKICAgICAgICB9CiAgICB9Cn0KaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGlucHV0KCk7CiAgICBzb2x2ZSgpOwp9Cg==