#include <bits/stdc++.h>
const long long mod = 1000000007;
const long long Inf = 2 * 1e9;
using namespace std;
long long toint(string s) {
  long long anss = 0;
  for (int(i) = 0; (i) < s.length(); (i)++) anss = anss * 10 + (s[i] - '0');
  return anss;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
vector<bool> used(200001, false);
vector<int> g(200001);
void dfs(int v) {
  used[v] = true;
  if (!used[g[v]]) dfs(g[v]);
}
int main() {
  int n;
  cin >> n;
  vector<int> t(n + 1), ch(n + 1);
  for (int(i) = 1; (i) < n + 1; (i)++) {
    scanf("%d", &t[i]);
    if (i > 1) t[i] -= t[1];
  }
  t[1] = 0;
  ch[0] = 0;
  for (int(i) = 1; (i) < n + 1; (i)++) {
    int ans = 20;
    ch[i] = ch[i - 1];
    int pos =
        lower_bound((t).begin(), (t).end(), max(0, t[i] - 89)) - t.begin();
    int sum = ch[i] - ch[max(0, pos - 1)];
    ans = min({ans, 50 - sum});
    pos = lower_bound((t).begin(), (t).end(), max(0, t[i] - 1439)) - t.begin();
    sum = ch[i] - ch[max(0, pos - 1)];
    ans = min({ans, 120 - sum});
    ch[i] += ans;
    printf("%d\n", ans);
  }
  return 0;
}
