#include <bits/stdc++.h>
using namespace std;
const int maxn = 60;
long long ans = 0, d[maxn][10];
string s, stemp;
void build() {
  for (int i = 0; i < 10; i++) d[0][i] = 1;
  for (int i = 1; i <= s.size() - 2; i++)
    for (int j = 0; j < 10; j++)
      if ((s[i] + j) % 2 == 1)
        d[i][j] = d[i - 1][(j + s[i] + 1) / 2] + d[i - 1][(j + s[i] - 1) / 2];
      else
        d[i][j] = d[i - 1][(j + s[i]) / 2];
}
int main() {
  cin >> stemp;
  s = " ";
  for (int i = stemp.size() - 1; i >= 0; i--) s += stemp[i] - '0';
  build();
  for (int i = 0; i < 10; i++) ans += d[s.size() - 2][i];
  int own = 1;
  for (int i = 1; i < stemp.size(); i++)
    if (abs(stemp[i] - stemp[i - 1]) > 1) own = 0;
  cout << ans - own << endl;
  return 0;
}
