#include <bits/stdc++.h>
using namespace std;
int main(){
  string s;
  cin >> s;
  reverse(s.begin(),s.end());
  int s_s=s.size();
  for(int i=0;i<s_s;i++){
    if(s.at(i)=='6'){
      s.at(i)='9';
    }else if(s.at(i)=='9'){
      s.at(i)='6';
    }
  }
  cout << s << endl;
  return 0;
}
#include <bits/stdc++.h>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<deque>
#include<stack>
#include<string>
#include<string.h>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#include<stdlib.h>
#include<cassert>
#include<time.h>
#include<bitset>
#include <numeric>
using namespace std;

typedef long long ll;
#define rep(i,n) for(int i = 0 ; i < n ; i++)
#define Rep(i,n) for(int i = 1 ; i <= n ; i++)
const int maxn=2e5+5;
const bool DEBUG = 0;


int main (){

    string s;

    cin >> s;

    rep(i,s.size()){
        if(s[i] == '6'){
            s[i] = '9';
        }else if(s[i] == '9'){
            s[i] = '6';
        }
    }

    for(int i = s.size()-1 ; i >= 0; i--){
        cout << s[i];
    }

    return 0;
}