만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

동치 문자열

시간 제한1초메모리 제한1024 MB

요약
교환 가능한 글자 쌍이 주어질 때, 인접한 교환 가능 글자를 서로 바꿔 문자열 s를 t로 만들 수 있는지 판별합니다.
난이도

보통10점 중 6점

유형
문자열, 구현
정답자
아직 제출이 없습니다

문제

알파벳 처음 kk개의 글자로 이루어진 문자열을 생각하자. 글자 쌍 중에는 교환 가능하다고 정해진 쌍이 있다. 문자열에서 교환 가능한 두 글자가 서로 인접해 있으면 두 글자의 위치를 바꿀 수 있다.

교환 가능한 글자 쌍이 주어진다. 길이가 같은 두 문자열 ss와 tt도 주어진다. 인접한 교환 가능한 두 글자를 바꾸는 연산을 임의의 횟수만큼 수행해서 ss로부터 tt를 얻을 수 있는지 판단하라.

입력

첫 줄에 두 정수 kk와 nn이 주어진다. kk는 사용하는 글자 수이고, nn은 교환 가능한 글자 쌍의 개수이다 (2≤k≤102 \le k \le 10, 0≤n≤k(k−1)/20 \le n \le k(k-1)/2).

다음 nn개의 줄에는 교환 가능한 쌍이 공백 없이 두 글자로 주어진다. 같은 쌍은 두 번 주어지지 않는다.

다음 두 줄에는 문자열 ss와 tt가 주어진다. 두 문자열의 길이는 같으며 그 길이를 LL이라 할 때 (1≤L≤100 0001 \le L \le 100\,000), 두 문자열은 라틴 알파벳 처음 kk개의 글자로만 이루어진다.

출력

위에서 설명한 연산으로 ss로부터 tt를 얻을 수 있으면 YES를, 그렇지 않으면 NO를 출력한다.

예제2

  1. 예제 1

    입력
    3 2
    ab
    bc
    abbcabc
    abcacbb
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    3 2
    ab
    bc
    abbcabc
    aabbbcc
    
    예상 출력
    NO