简单深搜
#include<stdio.h>
__int64 n,count;
int a[15],num;
char str[30];
void dfs(int op,__int64 sum)
{
if(op==num&&sum==n)
{
count++;
}
if(op==num)return ;
__int64 k=0;
for(int i=op;i<num;i++)
{
k=k*10+a[i];
dfs(i+1,sum+k);
if(op!=0)
dfs(i+1,sum-k);
}
}
int main()
{
int i;
char s[15];
while(scanf("%s%I64d",s,&n)!=-1)
{
count=0;
for(i=0;s[i];i++)
a[i]=s[i]-'0';
num=i;
dfs(0,0);
printf("%I64d\n",count);
}
return 0;
}