#include <bits/stdc++.h>
using namespace std;
int a[1100], ans[1100];
int gao(int pos) {
  int i, j, k, l, tt[4], temp = a[pos], f = 0, t, cnt;
  for (i = 0; i < 4; i++) {
    tt[i] = temp % 10;
    temp /= 10;
  }
  for (i = 2; i >= 1; i--) {
    for (j = 9; j >= 0; j--) {
      for (k = 9; k >= 0; k--) {
        for (l = 9; l >= 0; l--) {
          t = i * 1000 + j * 100 + k * 10 + l, cnt = 0;
          if (t >= 1000 && t <= 2011 && t <= ans[pos + 1]) {
            if (i == tt[3]) cnt++;
            if (j == tt[2]) cnt++;
            if (k == tt[1]) cnt++;
            if (l == tt[0]) cnt++;
            if (cnt > 2) {
              f = 1;
              break;
            }
          }
        }
        if (f) break;
      }
      if (f) break;
    }
    if (f) break;
  }
  if (f) {
    ans[pos] = t;
    return 1;
  }
  return 0;
}
int main() {
  int i, j, n, f = 0;
  scanf("%d", &n);
  for (i = 0; i < 1005; i++) ans[i] = 2011;
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  for (i = n - 1; i >= 0; i--)
    if (!gao(i)) {
      f = 1;
      break;
    }
  if (f)
    printf("No solution\n");
  else {
    for (i = 0; i < n; i++) printf("%d\n", ans[i]);
  }
  return 0;
}
