You have a string of decimal digits s. Let's define bij = si·sj. Find in matrix b the number of such rectangles that the sum bij for all cells (i, j) that are the elements of the rectangle equals a in each rectangle.

A rectangle in a matrix is a group of four integers (x, y, z, t) (x ≤ y, z ≤ t). The elements of the rectangle are all cells (i, j) such that x ≤ i ≤ y, z ≤ j ≤ t.

Input

The first line contains integer a (0 ≤ a ≤ 109), the second line contains a string of decimal integers s (1 ≤ |s| ≤ 4000).

Output

Print a single integer — the answer to a problem.

Please, do not write the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specifier.

Examples

Input

10
12345


Output

6


Input

16
439873893693495623498263984765


Output

40


import java.util.HashMap;
import java.util.Scanner;

public class C {
    public static void main(String cd[]){
        Scanner in=new Scanner(System.in);
        long a=in.nextLong();
        String s=in.next();
        long ar[]=new long[s.length()];
        ar[0]=s.charAt(0)-'0';
        for(int i=1;i<ar.length;i++){
            
            ar[i]=ar[i-1]+(s.charAt(i)-'0');
        }
        //long ar[][]=new long[s.length()][s.length()];
        HashMap<Long, Long> map=new HashMap<>();
        for(int i=0;i<s.length();i++){
            for(int j=i;j<s.length();j++){
                
                long sum=0;
                if(i!=0)
                sum=ar[j]-ar[i-1];
                else
                    sum=ar[j];
                
                //System.out.println(sum+"s");
                if(map.containsKey(sum)){
                    map.put(sum,map.get(sum)+1);
                }
                else{
                    map.put(sum, 1L);
                }
            }
        }
        if (a == 0) {
            if(map.containsKey(0L))
            System.out.println(map.get(0L)*s.length()*(s.length()+1)-map.get(0L)*map.get(0L));
            else
                System.out.println(0);
            return;
        }
        long ans=0;
        for(long t:map.keySet()){
            
            if(t!=0 && a%t==0)
            if(map.containsKey(a/t)){
                ans+=(map.get(t)*map.get(a/t));
            
            }
        }
        System.out.println(ans);
    }
}
