import Data.List

main = do
  li <- getLine
  let [n,p] = map read $ words li
  s <- getLine
  let ans = compute p s
  print ans

{-
文字列ベースでinitsとtailsをすると、readで同じような計算が繰り返される
数値ベースで考えると、10で割ると右が削除できるけど、左を1つ削除するのは難しい。
左はtailsで消す。右は flip div 10 で消す。
-}

compute :: Integer -> String -> Int
compute p s = length
  [ ()
  | s1 <- takeWhile (not.null) $ tails s
  , let s2 = read s1
  , s3 <- takeWhile (0 <) $ iterate (flip div 10) s2
  , s3 `mod` p == 0
  ]
