#include <bits/stdc++.h>
int CMP(const void *a, const void *b) { return (*(int *)a - *(int *)b); }
int MAX(int a, int b) { return (a > b ? a : b); }
int MIN(int a, int b) { return (a < b ? a : b); }
int GCD(int a, int b) {
  if (a % b == 0) {
    return (b);
  } else {
    return (GCD(b, a % b));
  }
}
int main() {
  long long int ans;
  int i, cnt;
  char s[100005];
  scanf("%s", s);
  cnt = 1;
  ans = 1;
  for (i = 1; s[i] != '\0'; i++) {
    if (s[i] - '0' + s[i - 1] - '0' == 9) {
      cnt++;
    } else {
      if (cnt % 2 == 1) {
        ans = ans * (cnt / 2 + 1);
      }
      cnt = 1;
    }
  }
  if (cnt % 2 == 1) {
    ans = ans * (cnt / 2 + 1);
  }
  printf("%lld\n", ans);
  return 0;
}
