#include <bits/stdc++.h>
using namespace std;

//求s1到n要播几次 
int num(string s1,int n){
	 int c = 0;
	 int i = 4;//s1取最后一位 
	 int t;//由小到大拨过去次数 
	 while(n != 0){
	 	t =  abs((n % 10) - (s1[i] - '0'));
	 	if(t <= 10 - t) c = c + t;
		else c = c + 10 - t;
		i--;
	    n = n / 10;
	 } 
	 
	 //剩余的数播回0 
	 for(int j = i;j >= 0;j--){
	 	  if(s1[j] == '9') c++;
		  else c = c + (s1[j] - '0'); 
	 }
	 
	 return c;
}

//素数判断 
bool sushu(int n){
	int i; 
	if(n <= 1) return false;
	for(i = 2;i <= sqrt(n);i++){
		if(n % i == 0){
			return false;
		}
	}
	
	return true;
}



int main(){
	string s;
	cin>>s;
	int i,mi = INT_MAX,x,r; 
	for(i = 2;i <= 99999;i++){
		if(sushu(i)){
			x = num(s,i);
//			cout<<i<<" "<<x<<endl; 
			if(x <= mi){
				mi = x;
				r = i;
			}
		}
	}
	
	//输出r前面补0
	string s2 = "";
	while(r != 0){
		s2 = s2 + (char)(r % 10 + 48);
		r = r / 10;
	} 
	
	
	for(i = 1;i <= 5 - s2.size();i++){
		cout<<0;
	}
	
	for(i = s2.size() - 1;i >= 0;i--){
		cout<<s2[i];
	}
}

/**************************************************************
	Problem: 1549
	User: admin
	Language: C++
	Result: Accepted
	Time:197 ms
	Memory:2080 kb
****************************************************************/