#include<bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 42
#endif
template<class X, class Y>bool maximize(X &x, const Y &y){if(x < y) return x = y, true; return false;}
template<class X, class Y>bool minimize(X &x, const Y &y){if(x > y) return x = y, true; return false;}
#define ll long long
#define fi first
#define se second
#define pb push_back
#define FOR(i, a, b) for(int i = (a), _b = (b); i <= _b; i++)
#define FORD(i, b, a) for(int i = (b), _a = (a); i >= _a; i--)
#define REP(i, n) for(int i = 0, _n = (n); i < _n; i++)
#define C make_pair
#define MASK(i) (1LL << (i))
#define TURN_ON(i, x) ((x) | MASK(i))
#define TURN_OFF(i, x) ((x) & ~MASK(i))
#define CNT(x) (__builtin_popcountll(x))
#define get_bit(i, x) ((x) & MASK(i))
#define REV(i, x) ((x) ^ MASK(i))
const ll mod = 1e9 + 7;
const ll INF = 1e15;
const int maxn = 1e5 + 5;
typedef pair<int, int> pi;
typedef pair<int, pair<int,int>> pii;
typedef pair<ll, ll> pl;
typedef pair<ll, pair<ll,ll>>pll;
const int MAXN = (int)1e5 + 5;
int n, a[MAXN], b[40], cnt[30][30];
ll ans;
void nhap(){
cin >> n;
FOR(i, 1, n) cin >> a[i];
}
void process(){
ll mn1 = INT_MAX, mn2 = INT_MAX, cnt1 = 0, cnt2 = 0;
FOR(i, 1, n){
if(b[i]) cnt2++;
else cnt1++;
}
if(!cnt1 || !cnt2) return;
FOR(i, 1, n){
if(b[i]) minimize(mn2, a[i]);
else minimize(mn1, a[i]);
}
cnt[mn1][mn2]++;
ans = (ans + mn1 * mn2 % mod) % mod;
}
void BackTrack(int i){
REP(j, 2){
b[i] = j;
if(i == n) process();
else BackTrack(i + 1);
}
}
void solve(){
BackTrack(1);
cout << ans;
FOR(i, 3, 11) cout << cnt[2][i] << '\n';
}
int main(){
//freopen("DIVTEAMS.INP", "r", stdin);
//freopen("DIVTEAMS.OUT", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
nhap();
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojaWZkZWYgTE9DQUwKI2luY2x1ZGUgImFsZ28vZGVidWcuaCIKI2Vsc2UKI2RlZmluZSBkZWJ1ZyguLi4pIDQyCiNlbmRpZgoKdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWT5ib29sIG1heGltaXplKFggJngsIGNvbnN0IFkgJnkpe2lmKHggPCB5KSByZXR1cm4geCA9IHksIHRydWU7IHJldHVybiBmYWxzZTt9CnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFk+Ym9vbCBtaW5pbWl6ZShYICZ4LCBjb25zdCBZICZ5KXtpZih4ID4geSkgcmV0dXJuIHggPSB5LCB0cnVlOyByZXR1cm4gZmFsc2U7fQoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IoaW50IGkgPSAoYSksIF9iID0gKGIpOyBpIDw9IF9iOyBpKyspCiNkZWZpbmUgRk9SRChpLCBiLCBhKSBmb3IoaW50IGkgPSAoYiksIF9hID0gKGEpOyBpID49IF9hOyBpLS0pCiNkZWZpbmUgUkVQKGksIG4pIGZvcihpbnQgaSA9IDAsIF9uID0gKG4pOyBpIDwgX247IGkrKykKI2RlZmluZSBDIG1ha2VfcGFpcgojZGVmaW5lIE1BU0soaSkgKDFMTCA8PCAoaSkpCiNkZWZpbmUgVFVSTl9PTihpLCB4KSAoKHgpIHwgTUFTSyhpKSkKI2RlZmluZSBUVVJOX09GRihpLCB4KSAoKHgpICYgfk1BU0soaSkpCiNkZWZpbmUgQ05UKHgpIChfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkKI2RlZmluZSBnZXRfYml0KGksIHgpICgoeCkgJiBNQVNLKGkpKQojZGVmaW5lIFJFVihpLCB4KSAoKHgpIF4gTUFTSyhpKSkKCmNvbnN0IGxsIG1vZCA9IDFlOSArIDc7CmNvbnN0IGxsIElORiA9IDFlMTU7CmNvbnN0IGludCBtYXhuID0gMWU1ICsgNTsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBwaTsKdHlwZWRlZiBwYWlyPGludCwgcGFpcjxpbnQsaW50Pj4gcGlpOwp0eXBlZGVmIHBhaXI8bGwsIGxsPiBwbDsKdHlwZWRlZiBwYWlyPGxsLCBwYWlyPGxsLGxsPj5wbGw7Cgpjb25zdCBpbnQgTUFYTiA9IChpbnQpMWU1ICsgNTsKCmludCBuLCBhW01BWE5dLCBiWzQwXSwgY250WzMwXVszMF07CmxsIGFuczsKCnZvaWQgbmhhcCgpewogICAgY2luID4+IG47CiAgICBGT1IoaSwgMSwgbikgY2luID4+IGFbaV07Cn0Kdm9pZCBwcm9jZXNzKCl7CiAgICBsbCBtbjEgPSBJTlRfTUFYLCBtbjIgPSBJTlRfTUFYLCBjbnQxID0gMCwgY250MiA9IDA7CiAgICBGT1IoaSwgMSwgbil7CiAgICAgICAgaWYoYltpXSkgY250MisrOwogICAgICAgIGVsc2UgY250MSsrOwogICAgfQogICAgaWYoIWNudDEgfHwgIWNudDIpIHJldHVybjsKICAgIEZPUihpLCAxLCBuKXsKICAgICAgICBpZihiW2ldKSBtaW5pbWl6ZShtbjIsIGFbaV0pOwogICAgICAgIGVsc2UgbWluaW1pemUobW4xLCBhW2ldKTsKICAgIH0KICAgIGNudFttbjFdW21uMl0rKzsKICAgIGFucyA9IChhbnMgKyBtbjEgKiBtbjIgJSBtb2QpICUgbW9kOwp9CnZvaWQgQmFja1RyYWNrKGludCBpKXsKICAgIFJFUChqLCAyKXsKICAgICAgICBiW2ldID0gajsKICAgICAgICBpZihpID09IG4pIHByb2Nlc3MoKTsKICAgICAgICBlbHNlIEJhY2tUcmFjayhpICsgMSk7CiAgICB9Cn0Kdm9pZCBzb2x2ZSgpewogICAgQmFja1RyYWNrKDEpOwogICAgY291dCA8PCBhbnM7CiAgICBGT1IoaSwgMywgMTEpIGNvdXQgPDwgY250WzJdW2ldIDw8ICdcbic7Cn0KaW50IG1haW4oKXsKICAgIC8vZnJlb3BlbigiRElWVEVBTVMuSU5QIiwgInIiLCBzdGRpbik7CiAgICAvL2ZyZW9wZW4oIkRJVlRFQU1TLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIG5oYXAoKTsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=