#include <bits/stdc++.h>
using namespace std;
const int xx[] = {1, -1, 0, 0}, yy[] = {0, 0, 1, -1};
long long pow(long long a, long long b, long long p) {
  long long sum = 1;
  for (a %= p; b; a = a * a % p, b >>= 1)
    if (b & 1) sum = sum * a % p;
  return sum;
}
char ch;
void rd(int &x) {
  for (ch = getchar(); ch < '0'; ch = getchar())
    ;
  for (x = 0; ch >= '0'; ch = getchar()) x = x * 10 + ch - '0';
}
long long phi(long long n) {
  long long i, re = n;
  for (i = 2; i * i <= n; i++)
    if (n % i == 0) {
      re = re / i * (i - 1);
      while (n % i == 0) n /= i;
    }
  if (n > 1) re = re / n * (n - 1);
  return re % 1000000007;
}
void exgcd(long long a, long long b, long long &x, long long &y) {
  if (!b) {
    x = 1;
    y = 0;
    return;
  }
  exgcd(b, a % b, y, x);
  y -= x * (a / b);
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
int T, n, m, x, y, i, j, w, o, p, nv, tot, cnt, a[222222];
long long A, B, C, ans;
char s[33];
int find(int x, int z, int p) {
  if (x % p <= z)
    return x + z - (x % p);
  else
    return x + p - ((x % p) - z);
}
int main() {
  scanf("%d", &n);
  ;
  for (int j = 1; j <= n; j++) {
    scanf("%s", s);
    o = strlen(s);
    w = 0;
    p = 1;
    nv = 1989;
    for (i = o - 1; i >= 4; i--) {
      w += p * (s[i] - '0');
      p *= 10;
      nv = find(nv, w, p) + 1;
    }
    printf("%d\n", nv - 1);
  }
}
