A. 成裘

内存限制:128 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

「故廊庙之材,盖非一木之枝也,粹白之裘,盖非一狐之皮也。」
—— 慎到《慎子·知忠》

Bardisk 想给 Barisore 做一件好看的衣服。但他手上只有两种布料(每种都有无限多份),而且对衣物的制作方法更是一无所知。于是他用了一种特殊的方法:先摆放下第一种布料一份,然后摆放下第二种布料一份,此后重复 次,每次都把最近摆放的倒数第二份布料和最近摆放的倒数第一份布料从左到右织在一起。

当然,Bardisk 最后只缝出了一块奇形怪状的烂布,不过 Barisore 特别喜欢布上的某一种花纹,她希望 Bardisk 算出该花纹出现了多少次。

形式化的说,你有三个字符串 ,且 ,问 在 中出现了多少次,由于出现次数可能太多了,你需要把这个次数对 取模。

输入格式

第一行一个正整数 。

接下来三行,依次是三个字符串 , , 。

输出格式

一行一个正整数,表示答案。

样例

样例输入

7
abc
cca
cc

样例输出

13

样例解释

为 abcccaccaabcccaccaabcccaabcccaccaabccca,可以验证匹配次数为 13。

数据范围与提示

对于前 的数据,。

对于前 的数据,。本部分分考察 KMP 或字符串哈希。

对于 的数据,。本题考察前缀自动机。

字符串全由小写字母组成。