1213_E. Two Small Strings_32155
You are given two strings s and t both of length 2 and both consisting only of characters 'a', 'b' and 'c'.

Possible examples of strings s and t: "ab", "ca", "bb".

You have to find a string res consisting of 3n characters, n characters should be 'a', n characters should be 'b' and n characters should be 'c' and s and t should not occur in res as substrings.

A substring of a string is a contiguous subsequence of that string. So, the strings "ab", "ac" and "cc" are substrings of the string "abacc", but the strings "bc", "aa" and "cb" are not substrings of the string "abacc".

If there are multiple answers, you can print any of them.

Input

The first line of the input contains one integer n (1 ≤ n ≤ 10^5) — the number of characters 'a', 'b' and 'c' in the resulting string.

The second line of the input contains one string s of length 2 consisting of characters 'a', 'b' and 'c'.

The third line of the input contains one string t of length 2 consisting of characters 'a', 'b' and 'c'.

Output

If it is impossible to find the suitable string, print "NO" on the first line. 

Otherwise print "YES" on the first line and string res on the second line. res should consist of 3n characters, n characters should be 'a', n characters should be 'b' and n characters should be 'c' and s and t should not occur in res as substrings.

If there are multiple answers, you can print any of them.

Examples

Input


2
ab
bc


Output


YES
acbbac


Input


3
aa
bc


Output


YES
cacbacbab


Input


1
cb
ac


Output


YES
abc
import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class E582TwoSmallStrings {

    static PrintWriter pr = new PrintWriter(System.out);
    public static class InputReader {
        private BufferedReader reader;
        private StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public long nextLong() {
            return Long.parseLong(next());
        }
    }

    public static void main(String[] args) {
        InputReader in = new InputReader(System.in);
        int n = in.nextInt();
        String s = in.next();
        String t = in.next();

        ans(n,s,t);
        pr.flush();
    }

    private static void ans(int n, String s, String t) {

        String[] buf = { "abc", "acb", "cba", "bca", "bac", "cab"};

        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < 6; i++) {

            StringBuilder str = new StringBuilder();

            for (int j = 0; j < n; j++) {
                str.append(buf[i]);
            }

            list.add(new String(str));
            str = new StringBuilder();

            for (int j = 0; j < 3; j++) {
                for (int k = 0; k < n; k++) {
                    str.append(buf[i].charAt(j));
                }
            }
            list.add(new String(str));
        }

        for (String str: list) {
            if (!str.contains(s) && !str.contains(t)){
                pr.println("YES");
                pr.print(str);
                return;
            }
        }

        pr.print("NO");
    }
}