小圆前辈的博弈
题号:NC221200
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小圆前辈今天将小焰同学叫来了,她们在玩一个有趣的游戏。小圆前辈有一个长度为n的字符串S,小焰有一个长度为m的字符串T,游戏规则是这样的:首先小圆前辈从S中取出一个子串s,然后小焰从T中取出一个子串t,若s与t相等的话,小圆前辈就输了,否则小焰输。小圆前辈想知道她有多少种必胜的取法,并向你求助,你能告诉她吗?

对于取出的任意的两个子串,只要在原串中位置不同我们就认为是不同的取法。

例如:abab中1~2的ab与3~4的ab虽然子串一样,但我们认为是不同的取法。


输入描述:

第一行两个整数n,m分别表示S的长度与T的长度。

第二行一个字符串S。

第三行一个字符串T。

输出描述:

一个整数表示答案。
示例1

输入

复制
3 4
aba
acac

输出

复制
4

说明

小圆前辈可以取出的子串有:a,b,a,ab,ba,aba

小焰同学可以取出的子串有:a,c,a,c,ac,ca,ac,aca,cac,acac

其中当小圆前辈取出b,ab,ba,aba时,小焰同学无法取出与其相同的子串,故小圆前辈必胜。

备注:

字符都是小写字母