#include<bits/stdc++.h>
#define ll long long
#define str string
#define rd read()
#define rt write
using namespace std;
int read(){
char c;
int x=0,f=1;
c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x*=10;
x+=c-'0';
c=getchar();
}
return f*x;
}
void write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9){
write(x/10);
}
putchar(x%10+'0');
return;
}
int n,l;
int a[1145];
int cha[114]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100,200,300,400,500,600,700,800,900,1000,2000,3000,4000,5000,6000,7000,8000,9000};
int main(){
n=rd;
a[0]=1000;
for(int i=1;i<=n;i++){
a[i]=rd;
}
for(int i=1;i<=n;i++){
if(a[i]>a[i-1]){
l=0;
while(a[i]-cha[l+1]>=a[i-1]) l++;
a[i]-=cha[l];
}
else if(a[i]<a[i-1]){
l=0;
while(a[i]+cha[l+1]<=a[i-1]) l++;
a[i]+=cha[l];
}
if(a[i]>2011||a[i]<1000){
cout<<"No solution";
return 0;
}
}
for(int i=1;i<=n;i++){
rt(a[i]);
cout<<'\n';
}
return 0;
}