#include <bits/stdc++.h>
using namespace std;
long long Dp[100005], Dpmax[100005];
int main(int argc, char const *argv[]) {
  string num;
  cin >> num;
  int n = (int)(num).size();
  for (auto &x : num) x = x - '0';
  int m = 0;
  long long *dp = Dp + 1, *dpmax = Dpmax + 1;
  Dp[0] = 1, dp[0] = 1, dpmax[0] = 0;
  for (int i = 1; i < n;) {
    if (i && num[i] + num[i - 1] == 9) {
      long long d1 = dpmax[i - 1];
      long long d2 = dpmax[i - 2] + 1;
      if (d1 > d2) {
        dp[i] += dp[i - 1];
      } else if (d1 < d2) {
        dp[i] += dp[i - 2];
      } else {
        dp[i] = dp[i - 1] + dp[i - 2];
      }
      dpmax[i] = max(d1, d2);
      i++;
    } else {
      dpmax[i] = dpmax[i - 1];
      dp[i] = dp[i - 1], i++;
    }
  }
  cout << dp[n - 1] << endl;
  return 0;
}
