#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll loc[100001], dp[2501][2501];
int main() {
//Fast I/O
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
memset(loc, -1, sizeof(loc));
memset(dp, -1, sizeof(dp));
ll n, i, j, prevElem, diff, prevInd;
cin >> n;
ll a[n];
for(i=0; i<n; i++) {
cin >> a[i];
loc[a[i]] = i;
}
sort(a, a+n);
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
diff = a[j]-a[i];
prevElem = a[i]-diff;
if(i == 0)
dp[i][j] = 2;
else {
if(prevElem > 0) {
if(loc[prevElem] != -1)
dp[i][j] = dp[loc[prevElem]][i] + 1;
else
dp[i][j] = 2;
}
else
dp[i][j] = 2;
}
}
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
cout << dp[i][j] << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsbCBsb2NbMTAwMDAxXSwgZHBbMjUwMV1bMjUwMV07CmludCBtYWluKCkgewoJCgkvL0Zhc3QgSS9PCglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgkKCW1lbXNldChsb2MsIC0xLCBzaXplb2YobG9jKSk7CgltZW1zZXQoZHAsIC0xLCBzaXplb2YoZHApKTsKCQoJbGwgbiwgaSwgaiwgcHJldkVsZW0sIGRpZmYsIHByZXZJbmQ7CgljaW4gPj4gbjsKCWxsIGFbbl07Cglmb3IoaT0wOyBpPG47IGkrKykgewoJCWNpbiA+PiBhW2ldOwoJCWxvY1thW2ldXSA9IGk7Cgl9Cglzb3J0KGEsIGErbik7Cglmb3IoaT0wOyBpPG47IGkrKykgewoJCWZvcihqPTA7IGo8bjsgaisrKSB7CgkJCWRpZmYgPSBhW2pdLWFbaV07CgkJCXByZXZFbGVtID0gYVtpXS1kaWZmOwoJCQlpZihpID09IDApCgkJCSAgICBkcFtpXVtqXSA9IDI7CgkJCWVsc2UgewogICAgCQkJaWYocHJldkVsZW0gPiAwKSB7CiAgICAJCQkJaWYobG9jW3ByZXZFbGVtXSAhPSAtMSkKICAgIAkJCQkJZHBbaV1bal0gPSBkcFtsb2NbcHJldkVsZW1dXVtpXSArIDE7CiAgICAJCQkJZWxzZQogICAgCQkJCQlkcFtpXVtqXSA9IDI7CiAgICAJCQl9CiAgICAJCQllbHNlCiAgICAJCQkgICAgZHBbaV1bal0gPSAyOyAgICAJCQkgICAgCgkJCX0KCQl9Cgl9CgkKCWZvcihpPTA7IGk8bjsgaSsrKSB7CgkJZm9yKGo9MDsgajxuOyBqKyspIHsKCQkJY291dCA8PCBkcFtpXVtqXSA8PCAiICI7CgkJfQoJCWNvdXQgPDwgZW5kbDsKCX0KCQoJcmV0dXJuIDA7Cn0KCg==