#include<bits/stdc++.h>
#define int long long
using namespace std;
int d,ans,p[25];
int Abs(int x)
{
	return x<0?-x:x;
}
signed main()
{
	cin>>d;
	p[0]=1LL;
	for(int i=1;i<=20;i++) p[i]=p[i-1]*10LL;
	for(int i=2;i<=20;i++)
	{
		int k=i/2;
		for(int s=0;s<(1<<k);s++)
		{
			int w,x=d;
			if(i&1) w=10;
			else w=1;
			for(int j=0;j<k;j++)
			{
				int d2=Abs(x)%10LL;
				if(x<0) d2=(10-d2)%10;
				if(s&(1<<j))
				{
					int n=10LL-d2;
					if(j==0) n--;
					w*=n;
					x+=d2*p[i-2*j-1];
					x-=d2;
				}
				else
				{
					int n=d2;
					if(j==0) n--;
					if(n<0)
					{
						w=0;
						break;
					}
					w*=n;
					x-=(10LL-d2)*p[i-2*j-1];
					x+=10LL-d2;
				}
				x/=10LL;
			}
			if(!x) ans+=w;
		}
	}
	cout<<ans;
	return 0;
}
#include <bits/stdc++.h>
#define SIZE 300005
#define MOD 1000000007LL
#define INF 1 << 30
#define LLINF 1LL << 60
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define DOWN(i,b,a) for(int i=b;i>=a;i--)
#define SET(a,c) memset(a,c,sizeof a)
#define FORALL(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define FOREACH(i,c) for(auto (i) : (c))
#define BIT(i,j) ((i)>>(j))&1
#define ALL(o) (o).begin(), (o).end()
#define ERASE(o) (o).erase(unique((o).begin(),(o).end()), (o).end())
#define SQ(x) ((x)*(x))
using namespace std;
typedef long long ll;
typedef valarray<int> Array;
typedef pair<ll,ll> Pll;
typedef pair<int, int> Pii;
typedef pair<double, double> Pdd;
template<typename T> inline void priv(vector<T>a){REP(i,a.size()){cout<<a[i]<<((i==a.size()-1)?"\n":" ");}}
ll gcd(ll a,ll b){int c=max(a,b);int d=min(a,b);return c==0||d==0?c:gcd(c%d,d);}
ll lcm(ll a,ll b){return a==0||b==0?0:a*b/gcd(a,b);}

int a[144];

void flip(int x, int y)
{
  if(x>11||y>11||x<0||y<0) return;
  if(a[x+y*12])
  {
    a[x+y*12] = 0;
    flip(x+1,y);
    flip(x-1,y);
    flip(x,y+1);
    flip(x,y-1);
  }
}

void solve()
{
  int cnt = 0;
  REP(i,144) if(a[i])
  {
    cnt++;
    flip(i%12,i/12);
  }
  cout << cnt << endl;
}

int main()
{
  string s;
  int i = 0;
  while(cin >> s)
  {
    REP(j,12) a[i*12+j] = s[j]-'0';
    i=(++i)%12;
    if(i==0) solve();
  }
  return 0;
}