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.*;
import java.io.*;


public class C213 {
	
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out); 
		int a = sc.nextInt();
		sc.nextLine();
		String line = sc.nextLine();
		sc.close();
		
		int[] nums = new int[line.length()];
		for(int i=0;i<nums.length;i++){
		    nums[i] = line.charAt(i)-'0';
		}
		
		//int[][] b = new int[nums.length][nums.length];
		int len = nums.length;
		
		if(a==0){
		    long zero = 0;
		    for(int i=0;i<len;i++){
	            int sum = 0;
	            for(int l=0;l<len-i;l++){
	                sum+=nums[i+l];
	                if(sum==0){
	                    zero++;
	                }
	            }
	        }
		    long res = zero * (len+1)*len;
		    res -= zero*zero;
		    out.println(res);
	        out.flush();
	        return;
		}
		
		HashSet<Integer> factor = new HashSet<Integer>();
		for(int i=1;i<=Math.sqrt(a);i++){
		    if(a % i == 0){
		        factor.add(i);
		        factor.add(a/i);
		    }
		}
		
		HashMap<Integer, Long> map = new HashMap<Integer,Long>();
				
		
		for(int i=0;i<len;i++){
		    int sum = 0;
		    for(int l=0;l<len-i;l++){
		        sum+=nums[i+l];
		        if(factor.contains(sum)){
		            if(map.containsKey(sum)){
		                map.put(sum, map.get(sum)+1);
		            }
		            else{
		                map.put(sum, 1L);
		            }
		        }
		    }
		}
		
		long cnt = 0;
		for(Integer f:factor){
		    Long l1 = map.get(f);
		    Long l2 = map.get(a/f);
		    if(l1!=null && l2!=null){
		        cnt += l1*l2;
		    }
		}		
		
		out.println(cnt);
		out.flush();
	}
}