#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")

char buf[1<<20];

int main(){
	int n=read(0,buf,sizeof buf);
	int a='+';
	int i,o;
	for(i=0;buf[i++]!='\n';){
	}
	for(o=i;i<n;++i){
		int c=buf[i];
		if(c<'-'){
			a='+';
		}else if(c=='-'){
			a=0;
		}else if(c=='?'){
			buf[i]=
				a ? '9' :
				i==0||buf[i-1]<'0'||buf[i+1]<'0' ? '1' :
				(a='+');
		}
	}
	write(1,buf+o,n-o);
	_exit(0);
}