#include <iostream>
#include <stack>
#include <queue>
#include <string>
#include <set>
#include <algorithm>
#include <map>
#include <vector>
#include <string.h>
#include <math.h>
#include <cassert>
#define __IO_INIT ios_base::sync_with_stdio(false), cin.tie(NULL);
#define LLMAX 1e18
#define DIV 1000000007
#define MAX 987654321
using ll = long long;
using namespace std;



int main() {
	__IO_INIT;

	string str;
	cin >> str;
	reverse(str.begin(), str.end());
	for (int i = 0; i < str.size(); i++) {
		if (str[i] == '6')
			str[i] = '9';
		else if (str[i] == '9')
			str[i] = '6';
	}

	cout << str;
	
}


#include<bits/stdc++.h>
typedef long long int ll;
using namespace std;

int main()
{
    string s;
    cin>>s;
    int i,c=0,d=0,j,k,l;
    for(i=0;i<s.size();i++)
    {
        if(s[i]=='o')
            c++;
        if(s[i]=='?')
            d++;
    }
   // cout<<c<<" "<<d<<endl;
   int res=0;
   for(i=0;i<=9;i++)
   {
       for(j=0;j<=9;j++)
       {
           for(k=0;k<=9;k++)
           {
               for(l=0;l<=9;l++)
               {
                   set<int>st;
                   if(s[i]=='x' || s[j]=='x' || s[k]=='x' || s[l]=='x')
                    continue;
                   if(s[i]=='o')
                    st.insert(i);
                   if(s[j]=='o')
                    st.insert(j);
                   if(s[k]=='o')
                    st.insert(k);
                   if(s[l]=='o')
                    st.insert(l);
                   if(st.size()==c)
                    res++;
               }
           }
       }
   }
   cout<<res<<endl;
    return 0;
}


