CF653B.Bear and Compressing

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Limak is a little polar bear. Polar bears hate long strings and thus they like to compress them. You should also know that Limak is so young that he knows only first six letters of the English alphabet: 'a', 'b', 'c', 'd', 'e' and 'f'.

You are given a set of qq possible operations. Limak can perform them in any order, any operation may be applied any number of times. The ii -th operation is described by a string aia_{i} of length two and a string bib_{i} of length one. No two of qq possible operations have the same string aia_{i} .

When Limak has a string ss he can perform the ii -th operation on ss if the first two letters of ss match a two-letter string aia_{i} . Performing the ii -th operation removes first two letters of ss and inserts there a string bib_{i} . See the notes section for further clarification.

You may note that performing an operation decreases the length of a string ss exactly by 11 . Also, for some sets of operations there may be a string that cannot be compressed any further, because the first two letters don't match any aia_{i} .

Limak wants to start with a string of length nn and perform n1n-1 operations to finally get a one-letter string "a". In how many ways can he choose the starting string to be able to get "a"? Remember that Limak can use only letters he knows.

输入格式

The first line contains two integers nn and qq ( 2<=n<=62<=n<=6 , 1<=q<=361<=q<=36 ) — the length of the initial string and the number of available operations.

The next qq lines describe the possible operations. The ii -th of them contains two strings aia_{i} and bib_{i} ( ai=2,bi=1|a_{i}|=2,|b_{i}|=1 ). It's guaranteed that aiaja_{i}≠a_{j} for iji≠j and that all aia_{i} and bib_{i} consist of only first six lowercase English letters.

输出格式

Print the number of strings of length nn that Limak will be able to transform to string "a" by applying only operations given in the input.

输入输出样例

  • 输入#1

    3 5
    ab a
    cc c
    ca a
    ee c
    ff d
    

    输出#1

    4
    
  • 输入#2

    2 8
    af e
    dc d
    cc f
    bc b
    da b
    eb a
    bb b
    ff c
    

    输出#2

    1
    
  • 输入#3

    6 2
    bb a
    ba a
    

    输出#3

    0
    

说明/提示

In the first sample, we count initial strings of length 33 from which Limak can get a required string "a". There are 44 such strings: "abb", "cab", "cca", "eea". The first one Limak can compress using operation 11 two times (changing "ab" to a single "a"). The first operation would change "abb" to "ab" and the second operation would change "ab" to "a".

Other three strings may be compressed as follows:

  • "cab" "ab" "a"
  • "cca" "ca" "a"
  • "eea" "ca" "a"

In the second sample, the only correct initial string is "eb" because it can be immediately compressed to "a".

首页