let deduct_10000_if_possible x = if (x >= 10000) then (x - 10000) else x;;
let rec numsubstrings str1 str2 l i j =
if (j
== (String.length str2
)) then 1 else
if (i
== (String.length str1
)) then 0 else
numsubstrings str1 str2 l (i+1) j
else
(deduct_10000_if_possible (numsubstrings str1 str2 (i::l) (i+1) (j+1)) + (numsubstrings str1 str2 l (i+1) j));;
let rec pad_string s =
if ((String.length s
) >= 4) then s
else (pad_string ("0" ^ s));;
let pad_int i =
let rec run_between i j =
if (i > j) then 1
else
run_between (i+1) j;;
run_between 1 n
bGV0IGRlZHVjdF8xMDAwMF9pZl9wb3NzaWJsZSB4ID0gaWYgKHggPj0gMTAwMDApIHRoZW4gKHggLSAxMDAwMCkgZWxzZSB4OzsKCmxldCByZWMgbnVtc3Vic3RyaW5ncyBzdHIxIHN0cjIgbCBpIGogPQogaWYgKGogPT0gKFN0cmluZy5sZW5ndGggc3RyMikpIHRoZW4KICAxIGVsc2UKICBpZiAoaSA9PSAoU3RyaW5nLmxlbmd0aCBzdHIxKSkgdGhlbiAKICAgMCBlbHNlCiAgIGlmICgoU3RyaW5nLmdldCBzdHIxIGkpICE9IChTdHJpbmcuZ2V0IHN0cjIgaikpIHRoZW4KICAgIG51bXN1YnN0cmluZ3Mgc3RyMSBzdHIyIGwgKGkrMSkgagogICBlbHNlCiAgICAoZGVkdWN0XzEwMDAwX2lmX3Bvc3NpYmxlIChudW1zdWJzdHJpbmdzIHN0cjEgc3RyMiAoaTo6bCkgKGkrMSkgKGorMSkpICsgKG51bXN1YnN0cmluZ3Mgc3RyMSBzdHIyIGwgKGkrMSkgaikpOzsKCmxldCByZWMgcGFkX3N0cmluZyBzID0gCiBpZiAoKFN0cmluZy5sZW5ndGggcykgPj0gNCkgdGhlbiBzCiAgZWxzZSAocGFkX3N0cmluZyAoIjAiIF4gcykpOzsKCmxldCBwYWRfaW50IGkgPSAKIHBhZF9zdHJpbmcgKHN0cmluZ19vZl9pbnQgaSk7OwoKbGV0IHJlYyBydW5fYmV0d2VlbiBpIGogPSAKIGlmIChpICA+IGopIHRoZW4gMQogIGVsc2UKIGxldCBzID0gKHJlYWRfbGluZSAoKSkgaW4KICBsZXQgdCA9IChwcmludF9lbmRsaW5lICgiQ2FzZSAjIiBeIChzdHJpbmdfb2ZfaW50IGkpIF4gIjogIiBeIChwYWRfaW50IChudW1zdWJzdHJpbmdzIHMgIndlbGNvbWUgdG8gY29kZSBqYW0iIFtdIDAgMCkpKSkgaW4KICAgcnVuX2JldHdlZW4gKGkrMSkgajs7CgpsZXQgbiA9IHJlYWRfaW50ICgpOzsKcnVuX2JldHdlZW4gMSBuCg==