#include<bits/stdc++.h>
using namespace std;
int a[100005];
string n,m;
long long cnt=0;
long long A(long long k1,long long k2){
	long long sum=1;
	for(long long i=k1;i>=k2;i--){
		sum*=i;
	}
	return sum;
}
void fun(string &n,string &m){
	if(n.size()==m.size()){
		return;
	}
	else if(n.size()>m.size()){
		for(int i=n.size()-m.size();i>=1;i--){
			m="0"+m;
		}
	}
	else if(m.size()>n.size()){
		for(int i=m.size()-n.size();i>=1;i--){
			n="0"+n;
		}
	}
}
int GS(string s){
	for(int i=0;i<s.size();i++){
		if(s[i]=='0'){
			return i+1;
		}
	}
}
void FuBen_DFS(int k){
	long long sum=1;
	for(int i=1;i<=m.size()-1;i++){
		int s=m[i]-'0';
		cnt+=sum*max(0,min(s,int(m.size()-s)));
	}
}
void DFS(int k){
	if(k<m.size()){
		cnt+=(k-1)*A(k-1,1);
	}
	if(k==m.size()){
		if(m[0]=='1') FuBen_DFS(m.size());
		else{
			cnt+=A(k-1,1)*(m[0]-'0'-1);
			FuBen_DFS(m.size());
		}
		return;
	}
	DFS(k+1);
}
int main(){
	cin>>n>>m;
	fun(n,m);
	int k=GS(n);
	DFS(k);
	cout<<cnt;
	return 0;
}