#include <bits/stdc++.h>
using namespace std;
const int Maxn = 55;
long long dp[Maxn][10];
int main() {
  string k;
  cin >> k;
  int n = k.length();
  for (int i = 0; i < 10; i++) {
    dp[0][i] = 1;
  }
  for (int i = 1; i < n; i++) {
    int t = k[i] - '0';
    for (int j = 0; j < 10; j++) {
      int l = (t + j) / 2, r = (t + j + 1) / 2;
      dp[i][l] += dp[i - 1][j];
      if (l != r) dp[i][r] += dp[i - 1][j];
    }
  }
  bool flag = false;
  for (int i = 1; i < n; i++) {
    int t = k[i] - '0', j = k[i - 1] - '0';
    if ((t + j + 1) / 2 != t && (t + j) / 2 != t) flag = true;
  }
  long long ans = (long long)-1 + flag;
  for (int i = 0; i <= 9; i++) {
    ans = (long long)ans + (long long)dp[n - 1][i];
  }
  cout << ans << endl;
  return 0;
}
