import java.util.*
import kotlin.math.*
private fun readLn() = readLine()!! // string
private fun readInt() = readLn().toInt() // single int
private fun readLong() = readLn().toLong() //long
private fun readStrings() = readLn().split(" ") // list of strings
private fun readInts() = readStrings().map { it.toInt() } // list of ints
private fun readLongs() = readStrings().map {it.toLong()} // list of longs

fun main() {
    val n = readInt()
    val s = readLn()
    val t = readLn()
    val sol = ArrayList<Char>()
    val arr = arrayOf('a','b','c')
        val ans = Array(3,{i->'a'})
        for(i in 0..2) for(j in 0..2) for(k in 0..2)
        {
            if(i==j || j == k || i == k) continue
            var st = arr[i].toString()+arr[j].toString()+arr[k].toString()+arr[i].toString()
            var good = true
            for(u in 0..2)
            {
                val ss = st.substring(u,u+2)
                if(ss == s || ss == t)
                {
                    good = false
                }
            }
            if(good) for(u in 0..2) ans[u] = st[u]
        }
    var cnt = 0
    if(s[0] == s[1]) cnt++;if(t[0]==t[1])cnt++
    println("YES")
    if(cnt == 0 && s[0] == t[1] && s[1] == t[0])
    {
        ans[0] = s[0]; ans[2] = s[1];
        while(ans[1] == s[0] || ans[1] == s[1]) ans[1]++
        for(i in 0..2) for(j in 1..n) sol.add(ans[i])
    } else if(cnt == 0 && (s[0] == t[0] && t[1] != s[1] || (s[0] != t[0] && s[1] == t[1])))
    {
        if(s[0] == t[0])
        {
            ans[2] = s[0]
            while(ans[1] == s[0]) ans[1]++
            while(ans[0] == ans[1] || ans[0] == ans[2]) ans[0]++
        }else
        {
            ans[0] = s[1]
            while(ans[1] == s[1]) ans[1]++
            while(ans[2] == ans[1] || ans[2] == ans[0]) ans[2]++
        }
        for(i in 0..2) for(j in 1..n) sol.add(ans[i])
    }
    else for(j in 1..n) for(i in 0..2) sol.add(ans[i])
    println(sol.joinToString(""))

}


import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;

public class E {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        PrintWriter out = new PrintWriter(System.out);

        int n = in.nextInt();

        String s = in.next();
        String t = in.next();

        solve(n, s, t, out);
        out.flush();
        out.close();
    }

    private static void solve(int n, String s, String t, PrintWriter out) {
        String[] buf = {"abc", "acb", "bac", "bca", "cab", "cba"};

        ArrayList<String> res = new ArrayList<>();

        for (int i = 0; i < buf.length; i++) {
            StringBuilder temp = new StringBuilder();

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

            res.add(new String(temp));

            temp = new StringBuilder();

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

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

            for (int j = 0; j < n; j++) {
                temp.append(buf[i].charAt(2));
            }
            res.add(new String(temp));
        }

        for (String re : res) {
            if (!re.contains(s) && !re.contains(t)) {
                out.println("YES");
                out.println(re);
                return;
            }
        }
    }
}


import java.util.*;
import java.lang.*;
import java.io.*;

public class Solution
{
				public static int n;
	public static void main (String[] args) throws java.lang.Exception
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter out = new PrintWriter(System.out);
		 n = Integer.parseInt(br.readLine());
		String x = br.readLine();
		String y = br.readLine();

		if(x.charAt(0)!=x.charAt(1) && y.charAt(0) != y.charAt(1)){
		    if(x.charAt(1) == y.charAt(0) && y.charAt(1) == x.charAt(0)){
		        char a = (x.charAt(0) != 'a' && x.charAt(1) != 'a') ? 'a' :
		            (x.charAt(0) != 'b' && x.charAt(1) != 'b') ? 'b' : 'c';
		      printSame(x.charAt(0),a,x.charAt(1),out);
		    }
		    else{
		      char a = y.charAt(0);
		      a = (a != x.charAt(0) && a != x.charAt(1)) ? a : y.charAt(1);
		      if(x.charAt(0)  == y.charAt(0)) printSame(a,x.charAt(1),x.charAt(0),out);
		      else printSame(x.charAt(1),x.charAt(0),a,out);
		    }

		}
		else if(x.charAt(0)==x.charAt(1) && y.charAt(0) == y.charAt(1)){
		    if(x.charAt(0) == y.charAt(0)){
		        StringBuilder sb = new StringBuilder();
		        for(int i=0;i<n;i++)
		         sb.append("abc");
		         out.println("YES");
		         out.println(sb.toString());
		    }
		    else{
		        char a = (x.charAt(0) != 'a' && y.charAt(0) != 'a') ? 'a'
		           : (x.charAt(0) != 'b' && y.charAt(0) != 'b')  ? 'b' : 'c';
		       printAlterante(x.charAt(0),y.charAt(0),a,out);
		    }
		}
		else{
		    if(x.charAt(0) == x.charAt(1)){
		       if(y.charAt(0) != x.charAt(0) && y.charAt(1) != x.charAt(0))
		        print(y.charAt(0),x.charAt(0),y.charAt(1),out);
		        else{
		            char a= 'a';
		            int i = (x.charAt(0) == y.charAt(0)) ? 0 : 1;
		           if('b'!=x.charAt(0) && 'b' !=  y.charAt(i^1)) a = 'b';
		           else if('c'!=x.charAt(0) && 'c' !=  y.charAt(i^1)) a = 'c';
		           print(y.charAt(1),y.charAt(0),a,out);
		        }
		    }
		     else{
		     if(x.charAt(0) != y.charAt(0) && x.charAt(1) != y.charAt(0))
		        print(x.charAt(0),y.charAt(0),x.charAt(1),out);
		        else{
		            char a= 'a';
		            int i = (y.charAt(0) == x.charAt(0)) ? 0 : 1;
		           if('b'!=y.charAt(0) && 'b' !=  x.charAt(i^1)) a = 'b';
		           else if('c'!=y.charAt(0) && 'c' !=  x.charAt(i^1)) a = 'c';
		           print(x.charAt(1),x.charAt(0),a,out);
		        }
		     }
		}
		out.close();
	}

	public static void printSame(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++) sb.append(a);
	    for(int i=0;i<n;i++) sb.append(b);
        for(int i=0;i<n;i++) sb.append(c);
        out.println(sb.toString());
	}
	public static void printAlterante(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++){
	       sb.append(a);
	       sb.append(b);
	    }
        for(int i=0;i<n;i++) sb.append(c);
        out.println(sb.toString());
	}
	public static void print(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++){
	         sb.append(a);
	         sb.append(b);
	         sb.append(c);
	    }
	    out.println(sb.toString());
	}
}


import java.util.*;
import java.lang.*;
import java.io.*;

public class Solution
{
				public static int n;
	public static void main (String[] args) throws java.lang.Exception
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter out = new PrintWriter(System.out);
		 n = Integer.parseInt(br.readLine());
		String x = br.readLine();
		String y = br.readLine();

		if(x.charAt(0)!=x.charAt(1) && y.charAt(0) != y.charAt(1)){
		    if(x.charAt(1) == y.charAt(0) && y.charAt(1) == x.charAt(0)){
		        char a = (x.charAt(0) != 'a' && x.charAt(1) != 'a') ? 'a' :
		            (x.charAt(0) != 'b' && x.charAt(1) != 'b') ? 'b' : 'c';
		      printSame(x.charAt(0),a,x.charAt(1),out);
		    }
		    else if(x.charAt(1) == y.charAt(1) && y.charAt(0) == x.charAt(0)){
		        char a = (x.charAt(0) != 'a' && x.charAt(1) != 'a') ? 'a' :
		            (x.charAt(0) != 'b' && x.charAt(1) != 'b') ? 'b' : 'c';
		            printSame(x.charAt(1),x.charAt(0),a,out);
		    }
		    else{
		      char a = y.charAt(0);
		      a = (a != x.charAt(0) && a != x.charAt(1)) ? a : y.charAt(1);
		      if(x.charAt(0)  == y.charAt(0)) printSame(a,x.charAt(1),x.charAt(0),out);
		      else printSame(x.charAt(1),x.charAt(0),a,out);
		    }

		}
		else if(x.charAt(0)==x.charAt(1) && y.charAt(0) == y.charAt(1)){
		    if(x.charAt(0) == y.charAt(0)){
		        StringBuilder sb = new StringBuilder();
		        for(int i=0;i<n;i++)
		         sb.append("abc");
		         out.println("YES");
		         out.println(sb.toString());
		    }
		    else{
		        char a = (x.charAt(0) != 'a' && y.charAt(0) != 'a') ? 'a'
		           : (x.charAt(0) != 'b' && y.charAt(0) != 'b')  ? 'b' : 'c';
		       printAlterante(x.charAt(0),y.charAt(0),a,out);
		    }
		}
		else{
		    if(x.charAt(0) == x.charAt(1)){
		       if(y.charAt(0) != x.charAt(0) && y.charAt(1) != x.charAt(0))
		        print(y.charAt(0),x.charAt(0),y.charAt(1),out);
		        else{
		            char a= 'a';
		            int i = (x.charAt(0) == y.charAt(0)) ? 0 : 1;
		           if('b'!=x.charAt(0) && 'b' !=  y.charAt(i^1)) a = 'b';
		           else if('c'!=x.charAt(0) && 'c' !=  y.charAt(i^1)) a = 'c';
		           print(y.charAt(1),y.charAt(0),a,out);
		        }
		    }
		     else{
		     if(x.charAt(0) != y.charAt(0) && x.charAt(1) != y.charAt(0))
		        print(x.charAt(0),y.charAt(0),x.charAt(1),out);
		        else{
		            char a= 'a';
		            int i = (y.charAt(0) == x.charAt(0)) ? 0 : 1;
		           if('b'!=y.charAt(0) && 'b' !=  x.charAt(i^1)) a = 'b';
		           else if('c'!=y.charAt(0) && 'c' !=  x.charAt(i^1)) a = 'c';
		           print(x.charAt(1),x.charAt(0),a,out);
		        }
		     }
		}
		out.close();
	}

	public static void printSame(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++) sb.append(a);
	    for(int i=0;i<n;i++) sb.append(b);
        for(int i=0;i<n;i++) sb.append(c);
        out.println(sb.toString());
	}
	public static void printAlterante(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++){
	       sb.append(a);
	       sb.append(b);
	    }
        for(int i=0;i<n;i++) sb.append(c);
        out.println(sb.toString());
	}
	public static void print(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++){
	         sb.append(a);
	         sb.append(b);
	         sb.append(c);
	    }
	    out.println(sb.toString());
	}
}


import java.util.*;
import java.lang.*;
import java.io.*;

public class Solution
{
				public static int n;
	public static void main (String[] args) throws java.lang.Exception
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter out = new PrintWriter(System.out);
		 n = Integer.parseInt(br.readLine());
		String x = br.readLine();
		String y = br.readLine();

		if(x.charAt(0)!=x.charAt(1) && y.charAt(0) != y.charAt(1)){
		    if(x.charAt(1) == y.charAt(0) && y.charAt(1) == x.charAt(0)){
		        char a = (x.charAt(0) != 'a' && x.charAt(1) != 'a') ? 'a' :
		            (x.charAt(0) != 'b' && x.charAt(1) != 'b') ? 'b' : 'c';
		      printSame(x.charAt(0),a,x.charAt(1),out);
		    }
		    else{
		      char a = y.charAt(0);
		      a = (a != x.charAt(0) && a != x.charAt(1)) ? a : y.charAt(1);
		      if(x.charAt(0)  == y.charAt(0)) printSame(a,x.charAt(1),x.charAt(0),out);
		      else printSame(x.charAt(1),x.charAt(0),a,out);
		    }

		}
		else if(x.charAt(0)==x.charAt(1) && y.charAt(0) == y.charAt(1)){
		    if(x.charAt(0) == y.charAt(0)){
		        StringBuilder sb = new StringBuilder();
		        for(int i=0;i<n;i++)
		         sb.append("abc");
		         out.println("YES");
		         out.println(sb.toString());
		    }
		    else{
		        char a = (x.charAt(0) != 'a' && y.charAt(0) != 'a') ? 'a'
		           : (x.charAt(0) != 'b' && y.charAt(0) != 'b')  ? 'b' : 'c';
		       printAlterante(x.charAt(0),y.charAt(0),a,out);
		    }
		}
		else{
		    if(x.charAt(0) == x.charAt(1))
		     print(y.charAt(0),x.charAt(0),y.charAt(1),out);
		     else
		     print(x.charAt(0),y.charAt(0),x.charAt(1),out);
		}
		out.close();
	}

	public static void printSame(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++) sb.append(a);
	    for(int i=0;i<n;i++) sb.append(b);
        for(int i=0;i<n;i++) sb.append(c);
        out.println(sb.toString());
	}
	public static void printAlterante(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++){
	       sb.append(a);
	       sb.append(b);
	    }
        for(int i=0;i<n;i++) sb.append(c);
        out.println(sb.toString());
	}
	public static void print(char a,char b, char c,PrintWriter out){
	    StringBuilder sb = new StringBuilder();
	    out.println("YES");
	    for(int i=0;i<n;i++){
	         sb.append(a);
	         sb.append(b);
	         sb.append(c);
	    }
	    out.println(sb.toString());
	}
}


import java.util.*;
import java.io.*;
//267630EY
public class Main1213E
{
  static PrintWriter out=new PrintWriter(System.out);

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

    String subans="";

    String[] comb={"abca","acba","bacb","bcab","cabc","cbac"};
    for(int i=0;i<comb.length;i++)
    {
      if(comb[i].indexOf(s)==-1&&comb[i].indexOf(t)==-1)
      {
        subans=comb[i].substring(0,3);
        break;
      }
    }
    StringBuilder ans=new StringBuilder();
    for(int i=0;i<n;i++)
    {
      ans.append(subans);
    }
    out.println("Yes");
    out.println(ans);
    out.flush();

  }

  static class Scanner
  {
    BufferedReader br;
    StringTokenizer tk=new StringTokenizer("");
    public Scanner(InputStream is)
    {
      br=new BufferedReader(new InputStreamReader(is));
    }

    public boolean hasNext()
    {

      boolean result=false;

      try
      {
        result = br.ready();
      }
      catch (IOException e)
      {
        System.err.println(e);
      }
      return result;
    }

    public int nextInt() throws IOException
    {
      if(tk.hasMoreTokens())
        return Integer.parseInt(tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return nextInt();
    }
    public long nextLong() throws IOException
    {
      if(tk.hasMoreTokens())
        return Long.parseLong(tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return nextLong();
    }
    public String next() throws IOException
    {
      if(tk.hasMoreTokens())
        return (tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return next();
    }
    public String nextLine() throws IOException
    {
      tk=new StringTokenizer("");
      return br.readLine();
    }
    public double nextDouble() throws IOException
    {
      if(tk.hasMoreTokens())
        return Double.parseDouble(tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return nextDouble();
    }
    public char nextChar() throws IOException
    {
      if(tk.hasMoreTokens())
        return (tk.nextToken().charAt(0));
      tk=new StringTokenizer(br.readLine());
      return nextChar();
    }
    public int[] nextIntArray(int n) throws IOException
    {
      int a[]=new int[n];
      for(int i=0;i<n;i++)
        a[i]=nextInt();
      return a;
    }
    public long[] nextLongArray(int n) throws IOException
    {
      long a[]=new long[n];
      for(int i=0;i<n;i++)
        a[i]=nextLong();
      return a;
    }
    public int[] nextIntArrayOneBased(int n) throws IOException
    {
      int a[]=new int[n+1];
      for(int i=1;i<=n;i++)
        a[i]=nextInt();
      return a;
    }
    public long[] nextLongArrayOneBased(int n) throws IOException
    {
      long a[]=new long[n+1];
      for(int i=1;i<=n;i++)
        a[i]=nextLong();
      return a;
    }
  }
}


import java.util.*;
import java.io.*;
//267630EY
public class Main1213E
{
  static PrintWriter out=new PrintWriter(System.out);
  static Vector<String> v;

  static void make(Vector<String> v,String s,int n)
  {
    StringBuilder res=new StringBuilder();
    for(int i=0;i<n;i++)
      res.append(s);
    v.add(res.toString());
    res=new StringBuilder();
    for(int i=0;i<s.length();i++)
    {
      char c=s.charAt(i);
      for(int j=0;j<n;j++)
        res.append(c);
    }
    v.add(res.toString());

  }

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

    v=new Vector<String>();
    make(v,"abc",n);
    make(v,"acb",n);
    make(v,"bac",n);
    make(v,"bca",n);
    make(v,"cab",n);
    make(v,"cba",n);

    for(int i=0;i<v.size();i++)
    {
      String can=v.elementAt(i);

      if(can.indexOf(s)==-1&&can.indexOf(t)==-1)
      {
        out.println("YES");
        out.println(can);
        break;
      }
    }
    out.flush();

  }

  static class Scanner
  {
    BufferedReader br;
    StringTokenizer tk=new StringTokenizer("");
    public Scanner(InputStream is)
    {
      br=new BufferedReader(new InputStreamReader(is));
    }

    public boolean hasNext()
    {

      boolean result=false;

      try
      {
        result = br.ready();
      }
      catch (IOException e)
      {
        System.err.println(e);
      }
      return result;
    }

    public int nextInt() throws IOException
    {
      if(tk.hasMoreTokens())
        return Integer.parseInt(tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return nextInt();
    }
    public long nextLong() throws IOException
    {
      if(tk.hasMoreTokens())
        return Long.parseLong(tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return nextLong();
    }
    public String next() throws IOException
    {
      if(tk.hasMoreTokens())
        return (tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return next();
    }
    public String nextLine() throws IOException
    {
      tk=new StringTokenizer("");
      return br.readLine();
    }
    public double nextDouble() throws IOException
    {
      if(tk.hasMoreTokens())
        return Double.parseDouble(tk.nextToken());
      tk=new StringTokenizer(br.readLine());
      return nextDouble();
    }
    public char nextChar() throws IOException
    {
      if(tk.hasMoreTokens())
        return (tk.nextToken().charAt(0));
      tk=new StringTokenizer(br.readLine());
      return nextChar();
    }
    public int[] nextIntArray(int n) throws IOException
    {
      int a[]=new int[n];
      for(int i=0;i<n;i++)
        a[i]=nextInt();
      return a;
    }
    public long[] nextLongArray(int n) throws IOException
    {
      long a[]=new long[n];
      for(int i=0;i<n;i++)
        a[i]=nextLong();
      return a;
    }
    public int[] nextIntArrayOneBased(int n) throws IOException
    {
      int a[]=new int[n+1];
      for(int i=1;i<=n;i++)
        a[i]=nextInt();
      return a;
    }
    public long[] nextLongArrayOneBased(int n) throws IOException
    {
      long a[]=new long[n+1];
      for(int i=1;i<=n;i++)
        a[i]=nextLong();
      return a;
    }
  }
}


import java.io.*;
import java.util.*;
public class Main {
	static BufferedReader br;
	static PrintWriter pr;
	static int cin() throws Exception
	{
		return Integer.valueOf(br.readLine());
	}
	static int[] split() throws Exception
	{
		String[] cmd=br.readLine().split(" ");
		int[] ans=new int[cmd.length];
		for(int i=0;i<cmd.length;i++)
		{
			ans[i]=Integer.valueOf(cmd[i]);
		}
		return ans;
	}
	static long[] splitL() throws IOException
	{
		String[] cmd=br.readLine().split(" ");
		long[] ans=new long[cmd.length];
		for(int i=0;i<cmd.length;i++)
		{
			ans[i]=Long.valueOf(cmd[i]);
		}
		return ans;
	}
	static int sum(long n)
	{
		int ans=0;
		while(n!=0)
		{
			ans=ans+(int)(n%10);
			n=n/10;
		}
		return ans;
	}
	static long gcd(long x,long y)
	{
		if(x==0)
			return y;
		if(y==0)
			return x;
		if(x>y)
			return gcd(x%y,y);
		else
			return gcd(x,y%x);
	}
	static int[]f;
	static int[]b;
	static boolean possible(int l,int n,int m)
	{
		for(int i=0;i<n;i++)
		{
			int j=i+l-1;
			if(j>=n)
				break;
			int x=0;
			if(i!=0)
				x+=f[i-1];
			int y=0;
			if(j!=n-1)
				y+=b[j+1];
//			System.out.println(l+" "+x+" "+y);
			if(x+y>=m)
				return true;
		}
		return false;
	}
	static int convert(int s,int t)
	{
		int steps=0;
		while(s>=t)
		{
			if(s==t)
				return steps;
			steps++;
			s=s/2;
		}
		return -1;
	}
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		br=new BufferedReader(new InputStreamReader(System.in));
		pr=new PrintWriter(new OutputStreamWriter(System.out));
		int cases=1;
		while(cases!=0)
		{
			cases--;
			int n=cin();
			String s=br.readLine();
			String t=br.readLine();
			char[]ch=new char[] {'a','b','c'};
			ArrayList<char[]> all=new ArrayList<>();
			for(int i=0;i<3;i++)
			{
				for(int j=0;j<3;j++)
				{
					if(j==i)
						continue;
					for(int k=0;k<3;k++)
					{
						if(k==i || k==j)
							continue;
						char ch1=ch[i];
						char ch2=ch[j];
						char ch3=ch[k];
						char[] ar=new char[3*n];
						for(int l=0;l<3*n;l=l+3)
						{
							ar[l]=ch1;
							ar[l+1]=ch2;
							ar[l+2]=ch3;
						}
						all.add(ar);
						char[]ar1=new char[3*n];
						for(int l=0;l<n;l++)
						{
							ar1[l]=ch1;
						}
						for(int l=n;l<2*n;l++)
						{
							ar1[l]=ch2;
						}
						for(int l=2*n;l<3*n;l++)
						{
							ar1[l]=ch3;
						}
						all.add(ar1);
					}
				}
			}
			boolean b=false;
			for(int i=0;i<all.size();i++)
			{
				boolean x=true;
				char[] ar=all.get(i);
				for(int j=0;j<3*n-1;j++)
				{
					String h=ar[j]+""+ar[j+1];
					if(h.equals(s) || h.equals(t))
					{
						x=false;
						break;
					}
				}
				if(x)
				{
					b=true;
					System.out.println("YES");
					System.out.println(String.valueOf(ar));
					break;
				}
			}
			if(!b)
				System.out.println("NO");
		}
	}
}


package Round582Div3;

import java.util.HashMap;
import java.util.Scanner;

public class ProblemE {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		String[] str = {"abc", "acb", "bac", "bca", "cab", "cba"};

		HashMap<String, Integer> group = new HashMap<>();
		System.out.println("YES");
		group.put("aa", 0);
		group.put("bb", 0);
		group.put("cc", 0);

		group.put("ab", 1);
		group.put("bc", 1);
		group.put("ca", 1);

		group.put("ac", 3);
		group.put("ba", 3);
		group.put("cb", 3);

		int n = s.nextInt();
		String s1 = s.next();
		String s2 = s.next();

		int gp1 = group.get(s1);
		int gp2 = group.get(s2);

		//System.out.println(gp1+" "+gp2);
		if(gp1==gp2)
		{
			print(str[gp1],n);
		}

		else if(gp1==0)
		{
			print(str[gp2],n);
		}

		else if(gp2 == 0)
		{
			print(str[gp1],n);
		}

		else
		{
			if(s1.charAt(0)==s2.charAt(0))
				print2(s1.charAt(1), s2.charAt(1), s1.charAt(0),n);

			else if(s1.charAt(0)==s2.charAt(1))
			{
				char first = s1.charAt(0), second = s1.charAt(1);
				char third ='a';
				if(first == 'a' && second =='b')
					third = 'c';

				if(first == 'a' && second =='c')
					third = 'b';

				if(first == 'b' && second =='a')
					third = 'c';

				if(first == 'b' && second =='c')
					third = 'a';

				if(first == 'c' && second =='a')
					third = 'b';

				if(first == 'c' && second =='b')
						third = 'a';

				print2(first, third, second,n);
			}

			else
			{
				//System.out.println("hello");
				print2(s1.charAt(1), s1.charAt(0), s2.charAt(0),n);
			}
		}

	}

	public static void print(String s, int n)
	{
		for(int i=0;i<n;i++)
			System.out.print(s);
	}

	public static void print2(char c1, char c2, char c3, int n)
	{
		print(c1+"", n);
		print(c2+"", n);
		print(c3+"", n);
	}

}


import java.util.HashMap;
import java.util.Scanner;

public class ProblemE {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		String[] str = {"abc", "acb", "bac", "bca", "cab", "cba"};

		HashMap<String, Integer> group = new HashMap<>();

		group.put("aa", 0);
		group.put("bb", 0);
		group.put("cc", 0);

		group.put("ab", 1);
		group.put("bc", 1);
		group.put("ca", 1);

		group.put("ac", 3);
		group.put("ba", 3);
		group.put("cb", 3);

		int n = s.nextInt();
		String s1 = s.next();
		String s2 = s.next();

		int gp1 = group.get(s1);
		int gp2 = group.get(s2);

		//System.out.println(gp1+" "+gp2);
		System.out.println("YES");
		if(gp1==gp2)
		{
			print(str[gp1],n);
		}

		else if(gp1==0)
		{
			print(str[gp2],n);
		}

		else if(gp2 == 0)
		{
			print(str[gp1],n);
		}

		else
		{
			if(s1.charAt(0)==s2.charAt(0))
				print2(s1.charAt(1), s2.charAt(1), s1.charAt(0),n);

			else if(s1.charAt(0)==s2.charAt(1))
			{
				char first = s1.charAt(0), second = s1.charAt(1);
				char third ='a';
				if(first == 'a' && second =='b')
					third = 'c';

				if(first == 'a' && second =='c')
					third = 'b';

				if(first == 'b' && second =='a')
					third = 'c';

				if(first == 'b' && second =='c')
					third = 'a';

				if(first == 'c' && second =='a')
					third = 'b';

				if(first == 'c' && second =='b')
						third = 'a';

				print2(first, third, second,n);
			}

			else
			{
				//System.out.println("hello");
				print2(s1.charAt(1), s1.charAt(0), s2.charAt(0),n);
			}
		}

	}

	public static void print(String s, int n)
	{
		for(int i=0;i<n;i++)
			System.out.print(s);
	}

	public static void print2(char c1, char c2, char c3, int n)
	{
		print(c1+"", n);
		print(c2+"", n);
		print(c3+"", n);
	}

}


package Round582Div3;

import java.util.HashMap;
import java.util.Scanner;

public class ProblemE {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		String[] str = {"abc", "acb", "bac", "bca", "cab", "cba"};

		HashMap<String, Integer> group = new HashMap<>();

		System.out.println("YES");
		group.put("aa", 0);
		group.put("bb", 0);
		group.put("cc", 0);

		group.put("ab", 1);
		group.put("bc", 1);
		group.put("ca", 1);

		group.put("ac", 3);
		group.put("ba", 3);
		group.put("cb", 3);

		int n = s.nextInt();
		String s1 = s.next();
		String s2 = s.next();

		int gp1 = group.get(s1);
		int gp2 = group.get(s2);

		//System.out.println(gp1+" "+gp2);
		if(gp1==gp2)
		{
			print(str[gp1],n);
		}

		else if(gp1==0)
		{
			print(str[gp2],n);
		}

		else if(gp2 == 0)
		{
			print(str[gp1],n);
		}

		else
		{
			if(s1.charAt(0)==s2.charAt(0))
				print2(s1.charAt(1), s2.charAt(1), s1.charAt(0),n);

			else if(s1.charAt(0)==s2.charAt(1))
			{
				char first = s1.charAt(0), second = s1.charAt(1);
				char third ='a';
				if(first == 'a' && second =='b')
					third = 'c';

				if(first == 'a' && second =='c')
					third = 'b';

				if(first == 'b' && second =='a')
					third = 'c';

				if(first == 'b' && second =='c')
					third = 'a';

				if(first == 'c' && second =='a')
					third = 'b';

				if(first == 'c' && second =='b')
						third = 'a';

				print2(first, third, second,n);
			}

			else
			{
				//System.out.println("hello");
				print2(s1.charAt(1), s1.charAt(0), s2.charAt(0),n);
			}
		}

	}

	public static void print(String s, int n)
	{
		for(int i=0;i<n;i++)
			System.out.print(s);
	}

	public static void print2(char c1, char c2, char c3, int n)
	{
		print(c1+"", n);
		print(c2+"", n);
		print(c3+"", n);
	}

}


import java.util.HashMap;
import java.util.Scanner;

public class ProblemE {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		String[] str = {"abc", "acb", "bac", "bca", "cab", "cba"};

		HashMap<String, Integer> group = new HashMap<>();

		group.put("aa", 0);
		group.put("bb", 0);
		group.put("cc", 0);

		group.put("ab", 1);
		group.put("bc", 1);
		group.put("ca", 1);

		group.put("ac", 0);
		group.put("ba", 0);
		group.put("cb", 0);

		int n = s.nextInt();
		String s1 = s.next();
		String s2 = s.next();

		int gp1 = group.get(s1);
		int gp2 = group.get(s2);

		if(gp1==gp2)
		{
			print(str[gp1],n);
		}

		else if(gp1==0)
		{
			print(str[gp2],n);
		}

		else if(gp2 == 0)
		{
			print(str[gp1],n);
		}

		else
		{
			if(s1.charAt(0)==s2.charAt(0))
				print2(s1.charAt(1), s2.charAt(1), s1.charAt(0),n);

			else if(s1.charAt(0)==s2.charAt(1))
			{
				char first = s1.charAt(0), second = s1.charAt(1);
				char third ='a';
				if(first == 'a' && second =='b')
					third = 'c';

				if(first == 'a' && second =='c')
					third = 'b';

				if(first == 'b' && second =='a')
					third = 'c';

				if(first == 'b' && second =='c')
					third = 'a';

				if(first == 'c' && second =='a')
					third = 'b';

				if(first == 'c' && second =='b')
						third = 'a';

				print2(first, third, second,n);
			}

			else
			{
				print2(s1.charAt(1), s1.charAt(0), s2.charAt(0),n);
			}
		}

	}

	public static void print(String s, int n)
	{
		for(int i=0;i<n;i++)
			System.out.print(s);
	}

	public static void print2(char c1, char c2, char c3, int n)
	{
		print(c1+"", n);
		print(c2+"", n);
		print(c3+"", n);
	}

}


import java.util.HashMap;
import java.util.Scanner;

public class ProblemE {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		String[] str = {"abc", "acb", "bac", "bca", "cab", "cba"};

		HashMap<String, Integer> group = new HashMap<>();

		group.put("aa", 0);
		group.put("bb", 0);
		group.put("cc", 0);

		group.put("ab", 1);
		group.put("bc", 1);
		group.put("ca", 1);

		group.put("ac", 0);
		group.put("ba", 0);
		group.put("cb", 0);

		int n = s.nextInt();
		String s1 = s.next();
		String s2 = s.next();

		int gp1 = group.get(s1);
		int gp2 = group.get(s2);

		System.out.println("YES");

		if(gp1==gp2)
		{
			print(str[gp1],n);
		}

		else if(gp1==0)
		{
			print(str[gp2],n);
		}

		else if(gp2 == 0)
		{
			print(str[gp1],n);
		}

		else
		{
			if(s1.charAt(0)==s2.charAt(0))
				print2(s1.charAt(1), s2.charAt(1), s1.charAt(0),n);

			else if(s1.charAt(0)==s2.charAt(1))
			{
				char first = s1.charAt(0), second = s1.charAt(1);
				char third ='a';
				if(first == 'a' && second =='b')
					third = 'c';

				if(first == 'a' && second =='c')
					third = 'b';

				if(first == 'b' && second =='a')
					third = 'c';

				if(first == 'b' && second =='c')
					third = 'a';

				if(first == 'c' && second =='a')
					third = 'b';

				if(first == 'c' && second =='b')
						third = 'a';

				print2(first, third, second,n);
			}

			else
			{
				print2(s1.charAt(1), s1.charAt(0), s2.charAt(0),n);
			}
		}

	}

	public static void print(String s, int n)
	{
		for(int i=0;i<n;i++)
			System.out.print(s);
	}

	public static void print2(char c1, char c2, char c3, int n)
	{
		print(c1+"", n);
		print(c2+"", n);
		print(c3+"", n);
	}

}


import java.util.HashMap;
import java.util.Scanner;

public class ProblemE {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		String[] str = {"abc", "acb", "bac", "bca", "cab", "cba"};

		HashMap<String, Integer> group = new HashMap<>();

		group.put("aa", 0);
		group.put("bb", 0);
		group.put("cc", 0);

		group.put("ab", 1);
		group.put("bc", 1);
		group.put("ca", 1);

		group.put("ac", 3);
		group.put("ba", 3);
		group.put("cb", 3);

		int n = s.nextInt();
		String s1 = s.next();
		String s2 = s.next();

		int gp1 = group.get(s1);
		int gp2 = group.get(s2);

		//System.out.println(gp1+" "+gp2);
		if(gp1==gp2)
		{
			print(str[gp1],n);
		}

		else if(gp1==0)
		{
			print(str[gp2],n);
		}

		else if(gp2 == 0)
		{
			print(str[gp1],n);
		}

		else
		{
			if(s1.charAt(0)==s2.charAt(0))
				print2(s1.charAt(1), s2.charAt(1), s1.charAt(0),n);

			else if(s1.charAt(0)==s2.charAt(1))
			{
				char first = s1.charAt(0), second = s1.charAt(1);
				char third ='a';
				if(first == 'a' && second =='b')
					third = 'c';

				if(first == 'a' && second =='c')
					third = 'b';

				if(first == 'b' && second =='a')
					third = 'c';

				if(first == 'b' && second =='c')
					third = 'a';

				if(first == 'c' && second =='a')
					third = 'b';

				if(first == 'c' && second =='b')
						third = 'a';

				print2(first, third, second,n);
			}

			else
			{
				//System.out.println("hello");
				print2(s1.charAt(1), s1.charAt(0), s2.charAt(0),n);
			}
		}

	}

	public static void print(String s, int n)
	{
		for(int i=0;i<n;i++)
			System.out.print(s);
	}

	public static void print2(char c1, char c2, char c3, int n)
	{
		print(c1+"", n);
		print(c2+"", n);
		print(c3+"", n);
	}

}


import java.io.PrintWriter;
import java.util.Scanner;

public class TwoSmallStrings {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        PrintWriter printWriter = new PrintWriter(System.out);

        int n = scanner.nextInt();
        String s = scanner.next();
        String t = scanner.next();

        //  Find 3 letter combination
        String[] combinations = {"abc", "acb", "bac", "bca", "cba", "cba"};
        String combination = null;
        StringBuilder ans = new StringBuilder();

        if (s.equals("aa") || s.equals("bb") || s.equals("cc") || t.equals("aa") || t.equals("bb")
        || t.equals("cc")) {

            for (int i = 0; i < combinations.length && combination == null; i++) {
                combination = findCombination(s, t, combinations[i]);

                if (combination != null) {
                    String finalCombination = combination.charAt(2) + "" + combination.charAt(0);

                    if (t.equals(finalCombination) || s.equals(finalCombination)) {
                        combination = null;
                    }
                }
            }

            for (int i = 0; i < n; i++) {
                ans.append(combination);
            }
        }
        else {

            for (int i = 0; i < combinations.length && combination == null; i++) {
                combination = findCombination(s, t, combinations[i]);
            }

            for (int i = 0; i < 3; i++) {
                char ch = combination.charAt(i);
                for (int j = 0; j < n; j++) {
                    ans.append(ch);
                }
            }
        }

        if (combination == null) {
            printWriter.println("NO");
        }
        else {
            printWriter.println("YES");
            printWriter.println(ans);
        }

        printWriter.close();
        scanner.close();
    }

    static String findCombination(String s, String t, String candidate) {

        String first = candidate.substring(0, 2);
        String second = candidate.substring(1);

        if (s.equals(first) || s.equals(second) || t.equals(first) || t.equals(second)) {
            return null;
        }

        return candidate;
    }
}


import java.util.Scanner;

public class Main {

    static void myPrint(int count, String s) {
        for (int i = 0; i < count; i++)
            System.out.print(s);
    }

    static void printNo() {
        System.out.println("NO");
    }
    static void printYes() {
        System.out.println("Yes");
    }

    static void print_n(int n, char ch) {
        for (int i = 0; i < n; i++)
            System.out.print(ch);
    }

    static char other(char ch1, char ch2) {
        if (Math.abs(ch2 - ch1) > 1)
            return 'b';
        switch(ch1 - ch2) {
            case 1 : {
                if (ch1 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            case -1 : {
                if (ch2 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            default: return 'a';
        }
    }

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);

        String[] arr = {"abc", "bca", "cab", "bac", "acb", "cba"};
        int n = obj.nextInt();

        obj.nextLine();
        String str1 = obj.nextLine();
        String str2 = obj.nextLine();

        char x = str1.charAt(0);
        char y = str1.charAt(1);
        char z = str2.charAt(0);
        char t = str2.charAt(1);

        if (str1 == str2) {
            printYes();
            if (x != y)
                myPrint(n, "" + y + x + other(x, y));
            else myPrint(n, "abc");
            return;
        }

        if (n == 1) {
            printYes();
            for (String i:arr){
                if (i.contains(str1) == false && i.contains(str2) == false) {
                    System.out.print(i);
                    return;
                }
            }

        }

        if (x == t && y == z) {
            if (x == y) {
                printYes();
                myPrint(n, "abc");
            }
            else printNo();
            return;
        }

        if (x == y && z == t) {
            printYes();
            myPrint(n, "abc");
            return;
        }

        if (x == y) {
            printYes();
            myPrint(n, ""+ t + z + other(t, z));
            return;
        }

        if (z == t) {
            printYes();
            myPrint(n, ""+ y + x + other(x, y));
            return;
        }

        if (x == z) {

            print_n(n, y);
            print_n(n, t);
            print_n(n, x);

            return;
        }

        if (y == t) {

            print_n(n, y);
            print_n(n, x);
            print_n(n, z);

            return;
        }
        printYes();
        if (x == t)
            myPrint(n, "" + x + z + y);
        else myPrint(n, "" + y + x + t);

    }
}


//package com.company;

import java.util.Scanner;

public class Main {

    static void myPrint(int count, String s) {
        for (int i = 0; i < count; i++)
            System.out.print(s);
    }

    static void printNo() {
        System.out.println("NO");
    }
    static void printYes() {
        System.out.println("Yes");
    }

    static void print_n(int n, char ch) {
        for (int i = 0; i < n; i++)
            System.out.print(ch);
    }

    static char other(char ch1, char ch2) {
        if (Math.abs(ch2 - ch1) > 1)
            return 'b';
        switch(ch1 - ch2) {
            case 1 : {
                if (ch1 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            case -1 : {
                if (ch2 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            default: return 'a';
        }
    }

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);

        String[] arr = {"abc", "bca", "cab", "bac", "acb", "cba"};
        int n = obj.nextInt();

        obj.nextLine();
        String str1 = obj.nextLine();
        String str2 = obj.nextLine();

        char x = str1.charAt(0);
        char y = str1.charAt(1);
        char z = str2.charAt(0);
        char t = str2.charAt(1);

        if (str1.equals(str2) == true) {
            printYes();
            if (x != y)
                myPrint(n, "" + y + x + other(x, y));
            else myPrint(n, "abc");
            return;
        }

        if (n == 1) {
            printYes();
            for (String i:arr){
                if (i.contains(str1) == false && i.contains(str2) == false) {
                    System.out.print(i);
                    return;
                }
            }

        }

        if (x == t && y == z) {
            printYes();
            if (x == y) {

                myPrint(n, "abc");
            }
            else {
                print_n(n, x);
                print_n(n, other(x, y));
                print_n(n, y);
            }
            return;
        }

        if (x == y && z == t) {
            printYes();
            myPrint(n, "abc");
            return;
        }

        if (x == y) {
            printYes();
            myPrint(n, ""+ t + z + other(t, z));
            return;
        }

        if (z == t) {
            printYes();
            myPrint(n, ""+ y + x + other(x, y));
            return;
        }

        if (x == z) {
            printYes();

            print_n(n, y);
            print_n(n, t);
            print_n(n, x);

            return;
        }

        if (y == t) {
            printYes();

            print_n(n, y);
            print_n(n, x);
            print_n(n, z);

            return;
        }
        printYes();
        if (x == t)
            myPrint(n, "" + x + z + y);
        else myPrint(n, "" + y + x + t);

    }
}


//package com.company;

import java.util.Scanner;

public class Main {

    static void myPrint(int count, String s) {
        for (int i = 0; i < count; i++)
            System.out.print(s);
    }

    static void printNo() {
        System.out.println("NO");
    }
    static void printYes() {
        System.out.println("Yes");
    }

    static void print_n(int n, char ch) {
        for (int i = 0; i < n; i++)
            System.out.print(ch);
    }

    static char other(char ch1, char ch2) {
        if (Math.abs(ch2 - ch1) > 1)
            return 'b';
        switch(ch1 - ch2) {
            case 1 : {
                if (ch1 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            case -1 : {
                if (ch2 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            default: return 'a';
        }
    }

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);

        String[] arr = {"abc", "bca", "cab", "bac", "acb", "cba"};
        int n = obj.nextInt();

        obj.nextLine();
        String str1 = obj.nextLine();
        String str2 = obj.nextLine();

        char x = str1.charAt(0);
        char y = str1.charAt(1);
        char z = str2.charAt(0);
        char t = str2.charAt(1);

        if (str1.equals(str2) == true) {
            printYes();
            if (x != y)
                myPrint(n, "" + y + x + other(x, y));
            else myPrint(n, "abc");
            return;
        }

        if (n == 1) {
            printYes();
            for (String i:arr){
                if (i.contains(str1) == false && i.contains(str2) == false) {
                    System.out.print(i);
                    return;
                }
            }

        }

        if (x == t && y == z) {
            if (x == y) {
                printYes();
                myPrint(n, "abc");
            }
            else printNo();
            return;
        }

        if (x == y && z == t) {
            printYes();
            myPrint(n, "abc");
            return;
        }

        if (x == y) {
            printYes();
            myPrint(n, ""+ t + z + other(t, z));
            return;
        }

        if (z == t) {
            printYes();
            myPrint(n, ""+ y + x + other(x, y));
            return;
        }

        if (x == z) {
            printYes();

            print_n(n, y);
            print_n(n, t);
            print_n(n, x);

            return;
        }

        if (y == t) {
            printYes();

            print_n(n, y);
            print_n(n, x);
            print_n(n, z);

            return;
        }
        printYes();
        if (x == t)
            myPrint(n, "" + x + z + y);
        else myPrint(n, "" + y + x + t);

    }
}


import java.util.Scanner;

public class Main {

    static void myPrint(int count, String s) {
        for (int i = 0; i < count; i++)
            System.out.print(s);
    }

    static void printNo() {
        System.out.println("NO");
    }
    static void printYes() {
        System.out.println("Yes");
    }

    static char other(char ch1, char ch2) {
        if (Math.abs(ch2 - ch1) > 1)
            return 'b';
        switch(ch1 - ch2) {
            case 1 : {
                if (ch1 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            case -1 : {
                if (ch2 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            default: return 'a';
        }
    }

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);

        String[] arr = {"abc", "bca", "cab", "bac", "acb", "cba"};
        int n = obj.nextInt();

        obj.nextLine();
        String str1 = obj.nextLine();
        String str2 = obj.nextLine();

        char x = str1.charAt(0);
        char y = str1.charAt(1);
        char z = str2.charAt(0);
        char t = str2.charAt(1);

        if (str1 == str2) {
            printYes();
            if (x != y)
                myPrint(n, "" + y + x + other(x, y));
            else myPrint(n, "abc");
            return;
        }

        if (n == 1) {
            printYes();
            for (String i:arr){
                if (i.contains(str1) == false && i.contains(str2) == false) {
                    System.out.print(i);
                    return;
                }
            }

        }

        if (x == t && y == z) {
            if (x == y) {
                printYes();
                myPrint(n, "abc");
            }
            else printNo();
            return;
        }

        if (x == z || y == t) {
            printNo();
            return;
        }

        if (x == y && z == t) {
            printYes();
            myPrint(n, "abc");
            return;
        }

        if (x == y) {
            printYes();
            myPrint(n, ""+ t + z + other(t, z));
            return;
        }
        if (z == t) {
            printYes();
            myPrint(n, ""+ y + x + other(x, y));
            return;
        }

        printYes();
        if (x == t)
            myPrint(n, "" + x + z + y);
        else myPrint(n, "" + y + x + t);

    }
}


//package com.company;

import java.util.Scanner;

public class Main {

    static void myPrint(int count, String s) {
        for (int i = 0; i < count; i++)
            System.out.print(s);
    }

    static void printNo() {
        System.out.println("NO");
    }
    static void printYes() {
        System.out.println("Yes");
    }

    static void print_n(int n, char ch) {
        for (int i = 0; i < n; i++)
            System.out.print(ch);
    }

    static char other(char ch1, char ch2) {
        if (Math.abs(ch2 - ch1) > 1)
            return 'b';
        switch(ch1 - ch2) {
            case 1 : {
                if (ch1 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            case -1 : {
                if (ch2 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            default: return 'a';
        }
    }

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);

        String[] arr = {"abc", "bca", "cab", "bac", "acb", "cba"};
        int n = obj.nextInt();

        obj.nextLine();
        String str1 = obj.nextLine();
        String str2 = obj.nextLine();

        char x = str1.charAt(0);
        char y = str1.charAt(1);
        char z = str2.charAt(0);
        char t = str2.charAt(1);

        if (str1 == str2) {
            printYes();
            if (x != y)
                myPrint(n, "" + y + x + other(x, y));
            else myPrint(n, "abc");
            return;
        }

        if (n == 1) {
            printYes();
            for (String i:arr){
                if (i.contains(str1) == false && i.contains(str2) == false) {
                    System.out.print(i);
                    return;
                }
            }

        }

        if (x == t && y == z) {
            if (x == y) {
                printYes();
                myPrint(n, "abc");
            }
            else printNo();
            return;
        }

        if (x == y && z == t) {
            printYes();
            myPrint(n, "abc");
            return;
        }

        if (x == y) {
            printYes();
            myPrint(n, ""+ t + z + other(t, z));
            return;
        }

        if (z == t) {
            printYes();
            myPrint(n, ""+ y + x + other(x, y));
            return;
        }

        if (x == z) {
            printYes();

            print_n(n, y);
            print_n(n, t);
            print_n(n, x);

            return;
        }

        if (y == t) {
            printYes();

            print_n(n, y);
            print_n(n, x);
            print_n(n, z);

            return;
        }
        printYes();
        if (x == t)
            myPrint(n, "" + x + z + y);
        else myPrint(n, "" + y + x + t);

    }
}


import java.util.Scanner;

public class Main {

    static void myPrint(int count, String s) {
        for (int i = 0; i < count; i++)
            System.out.print(s);
    }

    static void printNo() {
        System.out.println("NO");
    }
    static void printYes() {
        System.out.println("Yes");
    }

    static char other(char ch1, char ch2) {
        if (Math.abs(ch2 - ch1) > 1)
            return 'b';
        switch(ch1 - ch2) {
            case 1 : {
                if (ch1 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            case -1 : {
                if (ch2 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            default: return 'a';
        }
    }

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);

        String[] arr = {"abc", "bca", "cab", "bac", "acb", "cba"};
        int n = obj.nextInt();

        obj.nextLine();
        String str1 = obj.nextLine();
        String str2 = obj.nextLine();

        char x = str1.charAt(0);
        char y = str1.charAt(1);
        char z = str2.charAt(0);
        char t = str2.charAt(1);

        if (str1 == str2) {
            printYes();
            if (x != y)
                myPrint(n, "" + y + x + other(x, y));
            else myPrint(n, "abc");
            return;
        }

        if (n == 1) {
            printYes();
            for (String i:arr){
                if (i.contains(str1) == false && i.contains(str2) == false) {
                    System.out.print(i);
                    return;
                }
            }

        }

        if (x == t && y == z) {
            if (x == y) {
                printYes();
                myPrint(n, "abc");
            }
            else printNo();
            return;
        }

        if (x == z || y == t) {
            printNo();
            return;
        }

        printYes();
        if (x == t)
            myPrint(n, "" + x + z + y);
        else myPrint(n, "" + y + x + t);

    }
}


import java.util.Scanner;

public class Main {

    static void myPrint(int count, String s) {
        for (int i = 0; i < count; i++)
            System.out.print(s);
    }

    static void printNo() {
        System.out.println("NO");
    }
    static void printYes() {
        System.out.println("Yes");
    }

    static char other(char ch1, char ch2) {
        if (Math.abs(ch2 - ch1) > 1)
            return 'b';
        switch(ch1 - ch2) {
            case 1 : {
                if (ch1 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            case -1 : {
                if (ch2 == 'b')
                    return 'c';
                else return 'a';
                //break;
            }
            default: return 'a';
        }
    }

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);

        String[] arr = {"abc", "bca", "cab", "bac", "acb", "cba"};
        int n = obj.nextInt();

        obj.nextLine();
        String str1 = obj.nextLine();
        String str2 = obj.nextLine();

        char x = str1.charAt(0);
        char y = str1.charAt(1);
        char z = str2.charAt(0);
        char t = str2.charAt(1);

        if (str1 == str2) {
            printYes();
            if (x != y)
                myPrint(n, "" + y + x + other(x, y));
            else myPrint(n, "abc");
            return;
        }

        if (n == 1) {
            printYes();
            for (String i:arr){
                if (i.contains(str1) == false && i.contains(str2) == false) {
                    System.out.print(i);
                    return;
                }
            }

        }

        if (x == t && y == z) {
            if (x == y) {
                printYes();
                myPrint(n, "abc");
            }
            else printNo();
            return;
        }

        if (x == y && z == t) {
            printYes();
            myPrint(n, "abc");
            return;
        }

        if (x == y) {
            printYes();
            myPrint(n, ""+ t + z + other(t, z));
            return;
        }

        if (z == t) {
            printYes();
            myPrint(n, ""+ y + x + other(x, y));
            return;
        }

        if (x == z || y == t) {
            printNo();
            return;
        }
        printYes();
        if (x == t)
            myPrint(n, "" + x + z + y);
        else myPrint(n, "" + y + x + t);

    }
}


import java.io.*;

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		String[] str= {"abca", "acba", "bcab", "bacb", "cbac", "cabc"};
		String str1 = br.readLine();
		String str2 = br.readLine();
		String ans = "fff";
		for(int i=0; i<6; i++) {
			if(!str[i].contains(str1) && !str[i].contains(str2)) {
				ans = str[i].substring(0, 3);
				break;
			}
		}
		if(ans.equals("fff")) {
			System.out.println("NO");
		}
		else {
			System.out.println("YES");
			for(int i=0; i<n; i++) {
				System.out.print(ans);
			}
		}
	}
}


import java.io.*;

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		String[] str= {"abca", "acba", "bcab", "bacb", "cbac", "cabc"};
		String[] strn1 = {"abc", "acb", "bca", "bac", "cba", "cab"};
		String str1 = br.readLine();
		String str2 = br.readLine();
		String ans = "fff";
		for(int i=0; i<6; i++) {
			if(n==1) {
				if(!strn1[i].contains(str1) && !strn1[i].contains(str2)) {
					ans = strn1[i].substring(0, 3);
					break;
				}
			}
			else {
				if(!str[i].contains(str1) && !str[i].contains(str2)) {
					ans = str[i].substring(0, 3);
					break;
				}
			}

		}
		if(ans.equals("fff")) {
			System.out.println("NO");
		}
		else {
			System.out.println("YES");
			for(int i=0; i<n; i++) {
				System.out.print(ans);
			}
		}
	}
}


import java.io.*;

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		String[] str= {"abca", "acba","bcab", "bacb", "cbac", "cabc", "aabbcc", "bbccaa", "ccaabb"};
		String[] strn1 = {"abc", "acb", "bca", "bac", "cba", "cab", "abc", "abc", "abc"};
		String str1 = br.readLine();
		String str2 = br.readLine();
		String ans = "fff";
		for(int i=0; i<9; i++) {
			if(n==1) {
				if(!strn1[i].contains(str1) && !strn1[i].contains(str2)) {
					ans = strn1[i].substring(0, 3);
					break;
				}
			}
			else {
				if(!str[i].contains(str1) && !str[i].contains(str2)) {
					ans = str[i].substring(0, 3);
					break;
				}
			}

		}
		if(ans.equals("fff")) {
			System.out.println("NO");
		}
		else {
			System.out.println("YES");
			if(ans.equals("aab")) {
				for(int i=0; i<n; i++) System.out.print("a");
				for(int i=0; i<n; i++) System.out.print("b");
				for(int i=0; i<n; i++) System.out.print("c");
			}
			else if(ans.equals("bbc")) {
				for(int i=0; i<n; i++) System.out.print("b");
				for(int i=0; i<n; i++) System.out.print("c");
				for(int i=0; i<n; i++) System.out.print("a");
			}
			else if(ans.equals("ccb")) {
				for(int i=0; i<n; i++) System.out.print("c");
				for(int i=0; i<n; i++) System.out.print("a");
				for(int i=0; i<n; i++) System.out.print("b");
			}
			else {
				for(int i=0; i<n; i++) {
					System.out.print(ans);
				}
			}
		}
	}
}


import java.io.*;

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		String[] str= {"abca", "acba","bcab", "bacb", "cbac", "cabc", "aabbcc", "bbccaa", "ccaabb"};
		String[] strn1 = {"abc", "acb", "bca", "bac", "cba", "cab", "abc", "abc", "abc"};
		String str1 = br.readLine();
		String str2 = br.readLine();
		String ans = "fff";
		for(int i=0; i<9; i++) {
			if(n==1) {
				if(!strn1[i].contains(str1) && !strn1[i].contains(str2)) {
					ans = strn1[i].substring(0, 3);
					break;
				}
			}
			else {
				if(!str[i].contains(str1) && !str[i].contains(str2)) {
					ans = str[i].substring(0, 3);
					break;
				}
			}

		}
		if(ans.equals("fff")) {
			System.out.println("NO");
		}
		else {
			System.out.println("YES");
			if(ans.equals("aab")) {
				for(int i=0; i<n; i++) System.out.print("a");
				for(int i=0; i<n; i++) System.out.print("b");
				for(int i=0; i<n; i++) System.out.print("c");
			}
			else if(ans.equals("bbc")) {
				for(int i=0; i<n; i++) System.out.print("b");
				for(int i=0; i<n; i++) System.out.print("c");
				for(int i=0; i<n; i++) System.out.print("a");
			}
			else if(ans.equals("cca")) {
				for(int i=0; i<n; i++) System.out.print("c");
				for(int i=0; i<n; i++) System.out.print("a");
				for(int i=0; i<n; i++) System.out.print("b");
			}
			else {
				for(int i=0; i<n; i++) {
					System.out.print(ans);
				}
			}
		}
	}
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
import java.util.TreeSet;

public class B {

	static PrintWriter pw = new PrintWriter(System.out);
	public static void main(String[] args) throws Exception{
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			StringTokenizer st;
			String[] opt= {"abc","acb"};
			int n=Integer.parseInt(bf.readLine());
			String s= bf.readLine();
			String t= bf.readLine();
			StringBuilder sb1= new StringBuilder("");
			StringBuilder sb2= new StringBuilder("");

			for(int i=0;i<n;i++) {
				sb1.append(opt[0]);
				sb2.append(opt[1]);
			}
			String s1=sb1.toString();
			String s2=sb2.toString();
			boolean found=true;
			for(int i=0;i<s1.length()&&found;i++) {
				if(s1.charAt(i)==s.charAt(0)&&s1.charAt(i+1)==s.charAt(1)||s1.charAt(i)==t.charAt(0)&&s1.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found)
			{
				pw.println("YES");
			pw.println(s1);
			}else {
			found=true;
			for(int i=0;i<s1.length()&&found;i++) {
				if(s2.charAt(i)==s.charAt(0)&&s2.charAt(i+1)==s.charAt(1)||s2.charAt(i)==t.charAt(0)&&s2.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found) {
				pw.println("YES");

				pw.println(s2);
			}else {
				StringBuilder a=new StringBuilder();
				StringBuilder b=new StringBuilder();
				StringBuilder c=new StringBuilder();
				for(int i=0;i<n;i++) {
					a.append("a");
					b.append("b");
					c.append("c");
				}
				if(!((s.equals("ab")||t.equals("ab"))||(s.equals("bc")||t.equals("bc")))){
					pw.println("YES");
					pw.println(a.append(b).append(c).toString());
				}else if(!((s.equals("ba")||t.equals("ba"))||(s.equals("ac")||t.equals("ac")))) {
					pw.println("YES");

					pw.println(b.append(a).append(c).toString());
				}
				else if(!((s.equals("ba")||t.equals("ba"))||(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");

					pw.println(c.append(b).append(a).toString());
				}else if(!((s.equals("bc")||t.equals("bc"))||(s.equals("ca")||t.equals("ca")))) {
					pw.println("YES");

					pw.println(b.append(c).append(a).toString());
				}else if(!((s.equals("ac")||t.equals("ac"))||(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");
					pw.println(a.append(c).append(b).toString());
				}else if(!((s.equals("ca")||t.equals("ca"))||(s.equals("ab")||t.equals("ab")))) {
					pw.println("YES");
					pw.println(c.append(a).append(b).toString());
				}else {
					pw.println("NO");
				}
			}
	}
			pw.flush();
			}

}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Stack;
import java.util.StringTokenizer;

public class B {

	static PrintWriter pw = new PrintWriter(System.out);
	static ArrayList<Integer>[] adjList;
	public static void main(String[] args) throws Exception{
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			StringTokenizer st;
			st=new  StringTokenizer(bf.readLine());
			int n=Integer.parseInt(st.nextToken());
			int k=Integer.parseInt(st.nextToken());
			adjList=new ArrayList[n];
			for(int i=0;i<n;i++)
			adjList[i]=new ArrayList<Integer>();
			st=new StringTokenizer(bf.readLine());
			int prev=Integer.parseInt(st.nextToken())-1;
			int first=prev;
			for(int i=1;i<n;i++)
				adjList[prev].add(prev=(Integer.parseInt(st.nextToken())-1));
			st=new StringTokenizer(bf.readLine());
			 prev=Integer.parseInt(st.nextToken())-1;
			for(int i=1;i<n;i++)
				adjList[prev].add(prev=(Integer.parseInt(st.nextToken())-1));
		inSCC=new boolean[n];
		SCC=new int[n];
		dfsLow=new int[n];
		dfsNum=new int[n];

		//for(int i=0;i<n;i++)
			//if(dfsNum[i]==0)
				dfs(first);
		if(SCCidx>=k&&SCCidx<=26) {
			pw.println("YES");
		for(int i=0;i<n;i++)
			pw.print((char)((SCCidx-SCC[i]-1)+'a'));
		}else {
			pw.println("NO");
		}
			pw.flush();
			}
	static Stack<Integer> s=new Stack();
	static int SCCidx;
	static boolean[] inSCC;
	static int dfsLow[],dfsNum[],SCC[];
	static int time=0;
	public static void dfs(int u) {
		s.add(u);
		dfsLow[u]=dfsNum[u]=++time;
		for(int v:adjList[u]) {
			if(dfsNum[v]==0)
				dfs(v);
				if(!inSCC[v])
				dfsLow[u]=Math.min(dfsLow[u], dfsLow[v]);
		}
		if(dfsLow[u]==dfsNum[u]) {
			while(true) {
				int num=s.pop();
				SCC[num]=SCCidx;
				inSCC[num]=true;
				if(dfsLow[num]==dfsNum[num])break;
			}
			SCCidx++;
		}

	}
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
import java.util.TreeSet;

public class B {

	static PrintWriter pw = new PrintWriter(System.out);
	public static void main(String[] args) throws Exception{
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			StringTokenizer st;
			String[] opt= {"abc","acb"};
			int n=Integer.parseInt(bf.readLine());
			String s= bf.readLine();
			String t= bf.readLine();
			StringBuilder sb1= new StringBuilder("");
			StringBuilder sb2= new StringBuilder("");

			for(int i=0;i<n;i++) {
				sb1.append(opt[0]);
				sb2.append(opt[1]);
			}
			String s1=sb1.toString();
			String s2=sb2.toString();
			boolean found=true;
			for(int i=0;i<s1.length()-1&&found;i++) {
				if(s1.charAt(i)==s.charAt(0)&&s1.charAt(i+1)==s.charAt(1)||s1.charAt(i)==t.charAt(0)&&s1.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found)
			{
				pw.println("YES");
			pw.println(s1);
			}else {
			found=true;
			for(int i=0;i<s1.length()-1&&found;i++) {
				if(s2.charAt(i)==s.charAt(0)&&s2.charAt(i+1)==s.charAt(1)||s2.charAt(i)==t.charAt(0)&&s2.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found) {
				pw.println("YES");

				pw.println(s2);
			}else {
				StringBuilder a=new StringBuilder();
				StringBuilder b=new StringBuilder();
				StringBuilder c=new StringBuilder();
				for(int i=0;i<n;i++) {
					a.append("a");
					b.append("b");
					c.append("c");
				}
				if(!((s.equals("ab")||t.equals("ab"))||(s.equals("bc")||t.equals("bc")))){
					pw.println("YES");
					pw.println(a.append(b).append(c).toString());
				}else if(!((s.equals("ba")||t.equals("ba"))||(s.equals("ac")||t.equals("ac")))) {
					pw.println("YES");

					pw.println(b.append(a).append(c).toString());
				}
				else if(!((s.equals("ba")||t.equals("ba"))||(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");

					pw.println(c.append(b).append(a).toString());
				}else if(!((s.equals("bc")||t.equals("bc"))||(s.equals("ca")||t.equals("ca")))) {
					pw.println("YES");

					pw.println(b.append(c).append(a).toString());
				}else if(!((s.equals("ac")||t.equals("ac"))||(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");
					pw.println(a.append(c).append(b).toString());
				}else if(!((s.equals("ca")||t.equals("ca"))||(s.equals("ab")||t.equals("ab")))) {
					pw.println("YES");
					pw.println(c.append(a).append(b).toString());
				}else {
					pw.println("NO");
				}
			}
	}
			pw.flush();
			}

}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
import java.util.TreeSet;

public class B {

	static PrintWriter pw = new PrintWriter(System.out);
	public static void main(String[] args) throws Exception{
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			StringTokenizer st;
			String[] opt= {"abc","acb"};
			int n=Integer.parseInt(bf.readLine());
			String s= bf.readLine();
			String t= bf.readLine();
			StringBuilder sb1= new StringBuilder("");
			StringBuilder sb2= new StringBuilder("");

			for(int i=0;i<n;i++) {
				sb1.append(opt[0]);
				sb2.append(opt[1]);
			}
			String s1=sb1.toString();
			String s2=sb2.toString();
			boolean found=true;
			for(int i=0;i<3*n-1&&found;i++) {
				if(s1.charAt(i)==s.charAt(0)&&s1.charAt(i+1)==s.charAt(1)||s1.charAt(i)==t.charAt(0)&&s1.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found)
			{
				pw.println("YES");
			pw.println(s1);
			}else {
			found=true;
			for(int i=0;i<3*n-1&&found;i++) {
				if(s2.charAt(i)==s.charAt(0)&&s2.charAt(i+1)==s.charAt(1)||s2.charAt(i)==t.charAt(0)&&s2.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found) {
				pw.println("YES");

				pw.println(s2);
			}else {
				StringBuilder a=new StringBuilder();
				StringBuilder b=new StringBuilder();
				StringBuilder c=new StringBuilder();
				for(int i=0;i<n;i++) {
					a.append("a");
					b.append("b");
					c.append("c");
				}
				if(!((s.equals("ab")||t.equals("ab"))&&(s.equals("bc")||t.equals("bc")))){
					pw.println("YES");

					pw.println(a.append(b).append(c).toString());
				}else if(!((s.equals("ba")||t.equals("ba"))&&(s.equals("ac")||t.equals("ac")))) {
					pw.println("YES");

					pw.println(b.append(a).append(c).toString());
				}
				else if(!((s.equals("ba")||t.equals("ba"))&&(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");

					pw.println(c.append(b).append(a).toString());
				}else if(!((s.equals("bc")||t.equals("bc"))&&(s.equals("ca")||t.equals("ca")))) {
					pw.println("YES");

					pw.println(b.append(c).append(a).toString());
				}else if(!((s.equals("ac")||t.equals("ac"))&&(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");
					pw.println(a.append(c).append(b).toString());
				}else if(!((s.equals("ca")||t.equals("ca"))&&(s.equals("ab")||t.equals("ab")))) {
					pw.println("YES");
					pw.println(c.append(a).append(b).toString());
				}else {
					pw.println("NO");
				}
			}
	}
			pw.flush();
			}

}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
import java.util.TreeSet;

public class B {

	static PrintWriter pw = new PrintWriter(System.out);
	public static void main(String[] args) throws Exception{
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			StringTokenizer st;
			String[] opt= {"abc","acb"};
			int n=Integer.parseInt(bf.readLine());
			String s= bf.readLine();
			String t= bf.readLine();
			StringBuilder sb1= new StringBuilder("");
			StringBuilder sb2= new StringBuilder("");

			for(int i=0;i<n;i++) {
				sb1.append(opt[0]);
				sb2.append(opt[1]);
			}
			String s1=sb1.toString();
			String s2=sb2.toString();
			boolean found=true;
			for(int i=0;i<3*n-1&&found;i++) {
				if(s1.charAt(i)==s.charAt(0)&&s1.charAt(i+1)==s.charAt(1)||s1.charAt(i)==t.charAt(0)&&s1.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found)
			{
				pw.println("YES");
			pw.println(s1);
			}else {
			found=true;
			for(int i=0;i<3*n-1&&found;i++) {
				if(s2.charAt(i)==s.charAt(0)&&s2.charAt(i+1)==s.charAt(1)||s2.charAt(i)==t.charAt(0)&&s2.charAt(i+1)==t.charAt(1))
					found=false;
			}
			if(found) {
				pw.println("YES");

				pw.println(s2);
			}else {
				StringBuilder a=new StringBuilder();
				StringBuilder b=new StringBuilder();
				StringBuilder c=new StringBuilder();
				for(int i=0;i<n;i++) {
					a.append("a");
					b.append("b");
					c.append("c");
				}
				if(!((s.equals("ab")||t.equals("ab"))&&(s.equals("bc")||t.equals("bc")))){
					pw.println("YES");

					pw.println(a.append(b).append(c).toString());
				}else if(!((s.equals("ba")||t.equals("ba"))&&(s.equals("ac")||t.equals("ac")))) {
					pw.println("YES");

					pw.println(b.append(a).append(c).toString());
				}
				else if(!((s.equals("ba")||t.equals("ba"))&&(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");

					pw.println(c.append(b).append(a).toString());
				}else if(!((s.equals("bc")||t.equals("bc"))&&(s.equals("ca")||t.equals("ca")))) {
					pw.println("YES");

					pw.println(b.append(c).append(a).toString());
				}else if(!((s.equals("ac")||t.equals("ac"))&&(s.equals("cb")||t.equals("cb")))) {
					pw.println("YES");
					pw.println(a.append(c).append(b).toString());
				}else if(!((s.equals("ca")||t.equals("ca"))&&(s.equals("ab")||t.equals("ab")))) {
					pw.println("YES");
					pw.println(c.append(a).append(b).toString());
				}else {
					pw.println("NO");
				}
			}
			pw.flush();
	}
			}

}


import java.util.*;
import java.io.*;

public class E {
    public static void main(String[] args) {
        FastScanner scanner = new FastScanner();
        PrintWriter out = new PrintWriter(System.out);
        int n = scanner.nextInt();
        char[] s = scanner.next().toCharArray();
        char[] t = scanner.next().toCharArray();
        ArrayList<String> poss = new ArrayList<>();
        String[] perm = new String[]{"abc", "acb", "bac", "bca", "cab", "cba"};
        for(int i = 0; i < perm.length; i++) {
            StringBuilder temp = new StringBuilder();
            for(int j = 0; j < n; j++) {
                temp.append(perm[i]);
            }
            StringBuilder t2 = new StringBuilder();
            for(int j = 0; j < 3; j++) for(int k = 0;  k < n; k++) t2.append(perm[i].charAt(j));
            poss.add(temp.toString());
            poss.add(t2.toString());
        }
        top:
        for(String ss: poss) {
            for(int i = 1; i < 3 * n; i++) {
                if (ss.charAt(i-1) == s[0] && ss.charAt(i) == s[1]) continue top;
                if (ss.charAt(i-1) == t[0] && ss.charAt(i) == t[1]) continue top;
            }
            out.println("YES");
            out.println(ss);
            out.flush();
            return;
        }
        out.println("NO");
        out.flush();
    }

    public static class FastScanner {
        BufferedReader br;
        StringTokenizer st;

        public FastScanner(Reader in) {
            br = new BufferedReader(in);
        }

        public FastScanner() {
            this(new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

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

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

        double nextDouble() {
            return Double.parseDouble(next());
        }

        String readNextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }
}


import java.util.Scanner;

public class TaskE {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int n = s.nextInt();

		String bad1 = s.next();
		String bad2 = s.next();

		String[] sample1 = new String[] {"ab","ac","ba","bc","ca","cb"};
		String[] sample2 = new String[] {"aa","bb","cc"};
		String[] alt = new String[] {"a","b","c"};

		for(int x=0;x<6;x++) {
			for(int y=0;y<3;y++) {
				if(tryBlock(bad1,bad2,sample1[x],sample2[y])) {
					print1(sample1[x],sample2[y],n);
					return;
				}
			}
		}

		for(int x=0;x<3;x++) {
			for(int y=0;y<3;y++) {
				for(int i=0;i<3;i++ ) {
					if(tryBlock2(bad1,bad2,alt[x],alt[y],alt[i])) {
						print2(alt[x],alt[y],alt[i],n);
						return;
					}
				}
			}
		}

		System.out.println("NO");
	}

	public static boolean tryBlock2(String ban1, String ban2, String s1,String s2,String s3) {
		String res = s1 + s2 + s3;
		boolean pos = good();
		return pos && !(res.contains(ban1) && res.contains(ban2));
	}

	public static void print2(String s1,String s2,String s3,int n) {
		System.out.println("YES");
		for(int i=0;i<n;i++) {
			System.out.print(s1);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s2);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s3);
		}
	}

	public static void print1(String s1,String s2,int n) {
		System.out.println("YES");
		for(int i=0;i<n;i++) {
			System.out.print(s1);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s2);
		}
	}

	public static boolean tryBlock(String ban1, String ban2, String s1,String s2) {
		String res = s1 + s1 + s2;

		boolean pos = good(res);

		return pos && !(res.contains(ban1) && res.contains(ban2));
	}

	public static boolean good(String s) {
		char[] c = s.toCharArray();
		int[] count = new int[3];

		for(char i : c) {
			count[(int) i-97]++;
		}

		return (count[0] == count[1]) && (count[1] == count[2]);
	}
}


import java.util.Scanner;

public class TaskE {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int n = s.nextInt();

		String bad1 = s.next();
		String bad2 = s.next();

		String[] sample1 = new String[] {"ab","ac","ba","bc","ca","cb"};
		String[] sample2 = new String[] {"aa","bb","cc"};
		String[] alt = new String[] {"a","b","c"};

		for(int x=0;x<6;x++) {
			for(int y=0;y<3;y++) {
				if(tryBlock(bad1,bad2,sample1[x],sample2[y])) {
					print1(sample1[x],sample2[y],n);
					return;
				}
			}
		}

		for(int x=0;x<3;x++) {
			for(int y=0;y<3;y++) {
				for(int i=0;i<3;i++ ) {
					if(tryBlock2(bad1,bad2,alt[x],alt[y],alt[i])) {
						print2(alt[x],alt[y],alt[i],n);
						return;
					}
				}
			}
		}

		System.out.println("NO");
	}

	public static boolean tryBlock2(String ban1, String ban2, String s1,String s2,String s3) {
		String res = s1 + s2 + s3;
		boolean pos = good(res);
		return pos && !(res.contains(ban1) && res.contains(ban2));
	}

	public static void print2(String s1,String s2,String s3,int n) {
		System.out.println("YES");
		for(int i=0;i<n;i++) {
			System.out.print(s1);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s2);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s3);
		}
	}

	public static void print1(String s1,String s2,int n) {
		System.out.println("YES");
		for(int i=0;i<n;i++) {
			System.out.print(s1);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s2.toCharArray()[0]);
		}
	}

	public static boolean tryBlock(String ban1, String ban2, String s1,String s2) {
		String res = s1 + s1 + s2;

		boolean pos = good(res);

		return pos && !(res.contains(ban1) && res.contains(ban2));
	}

	public static boolean good(String s) {
		char[] c = s.toCharArray();
		int[] count = new int[3];

		for(char i : c) {
			count[(int) i-97]++;
		}

		return (count[0] == count[1]) && (count[1] == count[2]);
	}
}


import java.util.Scanner;

public class TaskE {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int n = s.nextInt();

		String bad1 = s.next();
		String bad2 = s.next();

		String[] sample1 = new String[] {"ab","ac","ba","bc","ca","cb"};
		String[] sample2 = new String[] {"aa","bb","cc"};
		String[] alt = new String[] {"a","b","c"};

		for(int x=0;x<6;x++) {
			for(int y=0;y<3;y++) {
				if(tryBlock(bad1,bad2,sample1[x],sample2[y])) {
					print1(sample1[x],sample2[y],n);
					return;
				}
			}
		}

		for(int x=0;x<3;x++) {
			for(int y=0;y<3;y++) {
				for(int i=0;i<3;i++ ) {
					if(tryBlock2(bad1,bad2,alt[x],alt[y],alt[i])) {
						print2(alt[x],alt[y],alt[i],n);
						return;
					}
				}
			}
		}

		System.out.println("NO");
	}

	public static boolean tryBlock2(String ban1, String ban2, String s1,String s2,String s3) {
		String res = s1 + s2 + s3;
		boolean pos = good(res);
		return pos && (!res.contains(ban1) && !res.contains(ban2));
	}

	public static void print2(String s1,String s2,String s3,int n) {
		System.out.println("YES");
		for(int i=0;i<n;i++) {
			System.out.print(s1);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s2);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s3);
		}
	}

	public static void print1(String s1,String s2,int n) {
		System.out.println("YES");
		for(int i=0;i<n;i++) {
			System.out.print(s1);
		}
		for(int i=0;i<n;i++) {
			System.out.print(s2.toCharArray()[0]);
		}
	}

	public static boolean tryBlock(String ban1, String ban2, String s1,String s2) {
		String res = s1 + s1 + s2;

		boolean pos = good(res);

		return pos && (!res.contains(ban1) && !res.contains(ban2));
	}

	public static boolean good(String s) {
		char[] c = s.toCharArray();
		int[] count = new int[3];

		for(char i : c) {
			count[(int) i-97]++;
		}

		return (count[0] == count[1]) && (count[1] == count[2]);
	}
}


import java.util.*;

public class e {

	static boolean comp(String a, String b, char x, char y) {
		if((x == a.charAt(0) && y == a.charAt(1)) || (x == b.charAt(0) && y == b.charAt(1))) {
			return true;
		}
		return false;
	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		String s = in.next(), t = in.next();
		String perm[] = {"abc", "acb", "bac", "bca", "cab", "cba"};
		if(s.charAt(0) == s.charAt(1) || t.charAt(0) == t.charAt(1)) {
			String good = null;
			for(String i : perm) {
				if(comp(s, t, i.charAt(0), i.charAt(1)) || comp(s, t, i.charAt(1), i.charAt(2)) || comp(s, t, i.charAt(2), i.charAt(0))) {
					continue;
				}
				good = i;
				break;
			}
			for(int i = 0; i < N; i++) {
				for(int j = 0; j < 3; j++) {
					System.out.print(good.charAt(j));
				}
			}
			System.out.println();
		}else {
			String good = null;
			for(String i : perm) {
				if(comp(s, t, i.charAt(0), i.charAt(1)) || comp(s, t, i.charAt(1), i.charAt(2))) {
					continue;
				}
				good = i;
				break;
			}
			for(int i = 0; i < 3; i++) {
				for(int j = 0; j < N; j++) {
					System.out.print(good.charAt(i));
				}
			}
			System.out.println();
		}
		in.close();
	}
}


import java.util.*;

public class e {

	static boolean comp(String a, String b, char x, char y) {
		if((x == a.charAt(0) && y == a.charAt(1)) || (x == b.charAt(0) && y == b.charAt(1))) {
			return true;
		}
		return false;
	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		String s = in.next(), t = in.next();
		String perm[] = {"abc", "acb", "bac", "bca", "cab", "cba"};
		System.out.println("YES");
		if(s.charAt(0) == s.charAt(1) || t.charAt(0) == t.charAt(1)) {
			String good = null;
			for(String i : perm) {
				if(comp(s, t, i.charAt(0), i.charAt(1)) || comp(s, t, i.charAt(1), i.charAt(2)) || comp(s, t, i.charAt(2), i.charAt(0))) {
					continue;
				}
				good = i;
				break;
			}
			for(int i = 0; i < N; i++) {
				for(int j = 0; j < 3; j++) {
					System.out.print(good.charAt(j));
				}
			}
			System.out.println();
		}else {
			String good = null;
			for(String i : perm) {
				if(comp(s, t, i.charAt(0), i.charAt(1)) || comp(s, t, i.charAt(1), i.charAt(2))) {
					continue;
				}
				good = i;
				break;
			}
			for(int i = 0; i < 3; i++) {
				for(int j = 0; j < N; j++) {
					System.out.print(good.charAt(i));
				}
			}
			System.out.println();
		}
		in.close();
	}
}


#include<bits/stdc++.h>
#include<math.h>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#define MAXN 100001
#define Endl '\n'
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define up  upper_bound
#define ll long long int
#define pii pair<ll,ll>
#define all(v) v.begin(),v.end()
#define fi(x,n) for(ll i=x;i<n;i++)
#define fj(x,n) for(ll j=x;j<n;j++)
#define fk(x,n) for(ll k=x;k<n;k++)
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
ll gcd(ll a,ll b){if(b==0)return a;return gcd(b,a%b);}
ll exp(ll x,ll y,ll mod)
{
	ll res=1;
	x=x%mod;
	while(y>0)
	{
		if(y&1)
			res=(res*x)%mod;
		y = y>>1;
		x=(x*x)%mod;
	}
	return res;
}
ll modinverse(ll x,ll mod)
{
    return exp(x,mod-2,mod);
}
using namespace std;
const ll inf = 0x3f3f3f3f3f3f3f3fll;
int main()
{
    fastio;
    ll n,x,y;
    cin>>n>>x>>y;

    if(y*y>=n*x)
    {
        ll ans=-1;
        fi(1,1000001)
        {
            if(n*n*i*i>=n*x&&n*n*i*i<=y*y)
            {
                ans=i;
                break;
            }
        }

        if(ans==-1)
            cout<<-1;
        else
        {
            fi(0,n)
            cout<<ans<<Endl;
        }
    }
    else
        cout<<-1;

    return 0;
}


#include<bits/stdc++.h>
#include<math.h>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<vector>
#include<string>
#define MAXN 100001
#define Endl '\n'
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define up  upper_bound
#define ll long long int
#define pii pair<ll,ll>
#define all(v) v.begin(),v.end()
#define fi(x,n) for(ll i=x;i<n;i++)
#define fj(x,n) for(ll j=x;j<n;j++)
#define fk(x,n) for(ll k=x;k<n;k++)
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
ll gcd(ll a,ll b){if(b==0)return a;return gcd(b,a%b);}
ll exp(ll x,ll y,ll mod)
{
	ll res=1;
	x=x%mod;
	while(y>0)
	{
		if(y&1)
			res=(res*x)%mod;
		y = y>>1;
		x=(x*x)%mod;
	}
	return res;
}
ll modinverse(ll x,ll mod)
{
    return exp(x,mod-2,mod);
}
using namespace std;
const ll inf = 0x3f3f3f3f3f3f3f3fll;
int main()
{
    fastio;
    ll n,x,y,l,r,lo,hi,mid;
    cin>>n>>x>>y;

    if(n>=x&&n<=y)
    {
        fi(0,n)
        cout<<1<<Endl;

        return 0;
    }

    ll ans=-1;
    fi(1,n+1)
    {
        lo=1;hi=(y-n+i)/i;
        while(hi>lo)
        {
            mid=(lo+hi)/2;

            if(i*mid*mid>=x-n+i)
            {
                fj(0,i)
                cout<<mid<<Endl;

                fj(0,n-i)
                cout<<1<<Endl;

                return 0;
            }
            else
                lo=mid+1;
        }
    }
    cout<<-1;

    return 0;
}


#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define pii pair<int,int>
#define fi first
#define se second
#define int long long
#define pb push_back
#define mod 1000000007
#define pll pair<long long,long long>
using namespace std;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
long long power(long long a,long long b){
    long long ans=1;
    while(b>0){
        if(b&1){ans=(ans*a)%mod;}
                a=(a*a)%mod;
                b>>=1;
        }
    return ans;

}
bool prime(int n){
    for(int i=2;i*i<=n;i++){
        if(n%i==0)return false;
    }
    return true;
}
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n,x,y;
    cin>>n>>x>>y;
    if(y<n)cout<<-1;
    else{
        int a[n];
        for(int i=0;i<n-1;i++){
            a[i]=1;
        }
        a[n-1]=y-n+1;
        bool b=true;
        int z=0;
        for(int i=0;i<n;i++){
            z+=(a[i]*a[i]);
            if(z>=x){
                b=false;
                break;
            }
        }
        if(b)cout<<-1;
        else{
            for(int i=0;i<n;i++)cout<<a[i]<<endl;
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define pii pair<int,int>
#define fi first
#define se second
#define int long long
#define pb push_back
#define mod 1000000007
#define pll pair<long long,long long>
using namespace std;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
long long power(long long a,long long b){
    long long ans=1;
    while(b>0){
        if(b&1){ans=(ans*a)%mod;}
                a=(a*a)%mod;
                b>>=1;
        }
    return ans;

}
bool prime(int n){
    for(int i=2;i*i<=n;i++){
        if(n%i==0)return false;
    }
    return true;
}
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n,x,y;
    cin>>n>>x>>y;
    int a[n];
    for(int i=0;i<n-1;i++){
        a[i]=1;
    }
    a[n-1]=y-n+1;
    bool b=true;
    int z=0;
    for(int i=0;i<n;i++){
        z+=(a[i]*a[i]);
        if(z>=x){
            b=false;
            break;
        }
    }
    if(b)cout<<-1;
    else{
        for(int i=0;i<n;i++)cout<<a[i]<<endl;
    }
    return 0;
}


#include <bits/stdc++.h>

using namespace std;
long long k,n,x,y;
int main() {
	cin>>n>>x>>y;
	k=x-(n-1);
	if(k<=0)
		k=1;
	k=sqrt(k);
	if((k*k)+n-1<x)
	{
		k++;
		if((k*k)+n-1<x)
		{
			cout<<-1;return 0;
		}
	}
	if(k+n-1>y)
	{
		cout<<-1;
		return 0;
	}
	for(long long i=0;i<n-1;i++)
	{
		cout<<1<<endl;
	}
	cout<<k;
	return 0;
}


#include <bits/stdc++.h>

using namespace std;
long long k,n,x,y;
int main() {
	cin>>n>>x>>y;
	k=x-(n-1);
	if(k<=0)
		k=1;
	if(((long long)sqrt(k)*(long long)sqrt(k))+n-1<x)
	{
		k=((long long)sqrt(k))+1;
	}
	if(k+n-1>y)
	{
		cout<<-1;
		return 0;
	}
	for(long long i=0;i<n-1;i++)
	{
		cout<<1<<endl;
	}
	cout<<k;
	return 0;
}


#include <bits/stdc++.h>

using namespace std;
long long k,n,x,y;
int main() {
	cin>>n>>x>>y;
	k=x-(n-1);
	if(k<=0)
		k=1;
	k=sqrt(k);
	if((k*k)+n-1<x)
	{
		k=sqrt(x-n)+2;
	}
	if(k+n-1>y)
	{
		cout<<-1;
		return 0;
	}
	for(long long i=0;i<n-1;i++)
	{
		cout<<1<<endl;
	}
	cout<<k;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

using ll = long long;
const int sz = 1e5 + 10;
ll n, x, y;

int main() {
    while( cin >> n >> x >> y ) {
        if( ( y - n + 1 ) * ( y - n + 1 ) + n - 1 < x ) puts( "-1" );
        else {
            for( int i=1; i<n; i++ ) cout << 1 << "\n";
            cout << ( y - n + 1 ) << "\n";
        }
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

using ll = long long;
const int sz = 1e5 + 10;
ll n, x, y;

int main() {
    while( cin >> n >> x >> y ) {
        if( ( y - n + 1 ) * ( y - n + 1 ) < x ) puts( "-1" );
        else {
            for( int i=1; i<n; i++ ) cout << 1 << "\n";
            cout << ( y - n + 1 ) << "\n";
        }
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

using ll = long long;
const int sz = 1e5 + 10;
ll n, x, y;

int main() {
    while( cin >> n >> x >> y ) {
        if( n > y || ( y - n + 1 ) * ( y - n + 1 ) + n - 1 < x ) puts( "-1" );
        else {
            for( int i=1; i<n; i++ ) cout << 1 << "\n";
            cout << ( y - n + 1 ) << "\n";
        }
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 1e5+7;
const int N = 1e8+7;
const int INF = 1000000009;
const double INF1 = 1000000009.0;
const int MOD = 1000000009;
const double eps = 1e-2;
#define pb push_back
ll po(ll x, ll y) {
    if (y == 0) {
      return 1;
    }
      ll sq = po(x, y / 2);
      sq *= sq;
      sq = sq%MOD;
      if (y % 2 != 0) {
        sq *= x;
        sq = sq%MOD;
      }
      return sq;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, x, y;
    cin >> n >> x >> y;
    if(x <= n-1 + (y-n+1) * (y-n+1)){
        for(int i = 0;i < n-1 ;i++){
            cout << 1 << '\n';
        }
        cout << y-n+1 << endl;
    }
    else{
        cout << -1 << endl;
    }

}

/*

*/


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 1e5+7;
const int N = 1e8+7;
const int INF = 1000000009;
const double INF1 = 1000000009.0;
const int MOD = 1000000009;
const double eps = 1e-2;
#define pb push_back
ll po(ll x, ll y) {
    if (y == 0) {
      return 1;
    }
      ll sq = po(x, y / 2);
      sq *= sq;
      sq = sq%MOD;
      if (y % 2 != 0) {
        sq *= x;
        sq = sq%MOD;
      }
      return sq;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    ll n, x, y;
    cin >> n >> x >> y;
    if(x <= n-1 + (y-n+1) * (y-n+1) && y-n+1 > 0){
        for(int i = 0;i < n-1 ;i++){
            cout << 1 << '\n';
        }
        cout << y-n+1 << endl;
    }
    else{
        cout << -1 << endl;
    }

}

/*

*/


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 1e5+7;
const int N = 1e8+7;
const int INF = 1000000009;
const double INF1 = 1000000009.0;
const int MOD = 1000000009;
const double eps = 1e-2;
#define pb push_back
ll po(ll x, ll y) {
    if (y == 0) {
      return 1;
    }
      ll sq = po(x, y / 2);
      sq *= sq;
      sq = sq%MOD;
      if (y % 2 != 0) {
        sq *= x;
        sq = sq%MOD;
      }
      return sq;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    ll n, x, y;
    cin >> n >> x >> y;
    if(x <= n-1 + (y-n+1) * (y-n+1)){
        for(int i = 0;i < n-1 ;i++){
            cout << 1 << '\n';
        }
        cout << y-n+1 << endl;
    }
    else{
        cout << -1 << endl;
    }

}

/*

*/


#include <bits/stdc++.h>
using namespace std;

int main() {
	long long int t, n, x, y, q;
	cin >>n>> x >>y;
	q = y-n+1;
	t = pow(q, 2) + n-1;
	if(t >= x){
		for(int i = 0; i < n-1; i++)
			cout << 1 << endl;
		cout << q;
	}
        else
            cout << -1;
	return 0;
}


#include <iostream>
using namespace std;

int main() {
	long long int t, n, x, y, q;
	cin >>n>> x >>y;
	q = y-n;
	t = q^2;
	if(t >= y){
		for(int i = 0; i < n-1; i++)
			cout << 1 << endl;
		cout << q;
	}
        else
            cout << -1;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main() {
	long long int t, n, x, y, q;
	cin >>n>> x >>y;
	if(n > y){
		cout << -1;
		return 0;
	}
	q = y-n+1;
	t = pow(q, 2) + n-1;
	if(t >= x){
		for(int i = 0; i < n-1; i++)
			cout << 1 << endl;
		cout << q;
	}
else
cout << -1;
	return 0;
}


#include <iostream>
using namespace std;

int main() {
	long long int t, n, x, y, q;
	cin >>n>> x >>y;
	q = y-n;
	t = q^2;
	if(t >= x){
		for(int i = 0; i < n-1; i++)
			cout << 1 << endl;
		cout << q;
	}
        else
            cout << -1;
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll n,x,y;
int main(){
    cin>>n>>x>>y;
    ll sum=0;
    if(n>y){
        cout<<-1;return 0;
    }
    vector<ll>l;
    l.push_back(y+1-n);
    sum=(y+1-n)*(y+1-n);
    for(int i=0;i<n-1;i++){
        l.push_back(1);
        sum+=1;
    }
    if(sum<x){
        cout<<-1;return 0;
    }
    for(int i=0;i<n;i++) cout<<l[i]<<endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll n,x,y;
int main(){
    cin>>n>>x>>y;
    ll sum=0;
    if(n>y){
        cout<<-1;return 0;
    }
    vector<ll>l(n+1);
    for(ll i=n;i;i--){
        l[i]=y/n;
        sum+=(y/n)*(y/n);
        y-=y/n;
    }
    if(sum<x){
        cout<<-1;return 0;
    }
    for(int i=1;i<=n;i++) cout<<l[i]<<endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll n,x,y;
int main(){
    cin>>n>>x>>y;
    ll sum=0;
    if(n>y){
        cout<<-1;return 0;
    }
    vector<ll>l;
    l.push_back(y+1-n);
    sum=(y+1-n)*(y+1-n);
    for(int i=0;i<n-1;i++){
        l.push_back(1);
        sum+=1;
    }
    if(sum<x){
        cout<<-1;return 0;
    }
    for(int i=1;i<=n;i++) cout<<l[i]<<endl;
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	long long n, x, y;
	cin>>n>>x>>y;
	for(long long i = 1; i <= 1e6; ++i){
		if(i * i >= x){
			if(i + n-1 <= y){
				cout<<i<<"\n";
				for(int j = 0; j < n-1; ++j)
					cout<<1<<"\n";
				return 0;
			}
		}
	}
	cout<<"-1\n";
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	long long n, x, y;
	cin>>n>>x>>y;
	for(long long i = 1; i <= 1e6; ++i){
		if(i * i + (n-1) >= x){
			if(i + (n-1) <= y){
				cout<<i<<"\n";
				for(int j = 0; j < n-1; ++j)
					cout<<1<<"\n";
				return 0;
			}
			break;
		}
	}
	cout<<"-1\n";
	return 0;
}


#include <bits/stdc++.h>
#define sz(v)   ((int)(v).size())
#define  eps      0.000001
#define  all(v)    ((v).begin()),((v).end())
#define  allr(v)    ((v).rbegin()),((v).rend())
#define   pb         push_back
#define   mp         make_pair
#define   inf        0x7fffffff
#define    PI        3.1415926536
#define    vi       vector<int>
#define    vvi      vector< vector<int> >
#define    vs       vector<string>
#define     vc        vector<char>
#define     vpi        vector< pair<int ,int> >
#define     vpll        vector< pair<long long ,long long> >
#define    vll       vector<long long>
#define    lp(i,n)    for(i=0;i<n;i++)
#define     si         set<int>
typedef  long long     ll ;
typedef  unsigned long long ull;
using namespace std;

int main()
{
    int n,i,c;
    char x;

    cin>>n;
    x='a';

    for(i=0;i<n;i++)
    {
        if(x>100)
            x-=4;

        cout<<x;
        x+=1;

    }

}


#include<bits/stdc++.h>
using namespace std;

int main ()
{
    long long x, y;
    int n;
    cin >> n >> x >> y;
    long long g = y - n + 1;
    if(y < n || g * g + (n - 1) < x)
    {
        cout << -1 << endl;
        return 0;
    }

    for(int i = 0; i < n - 1; i++)
        cout << 1 << endl;
    cout << y - n + 1 << endl;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,x,y;
    cin>>n>>x>>y;
    vector < long long > A(n,1);
    A[n-1] = y - n + 1;
    long long temp = A[n-1];
    temp *=  A[n-1];
    temp += (n-1);
    if(temp>=x){
	for(auto it : A){
	    cout<<it<<endl;
	}
	return 0;
    }
    cout<<-1<<endl;

}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,x,y;
    cin>>n>>x>>y;
    vector < int > A(n,1);
    A[n-1] = y - n + 1;
    long long temp = A[n-1];
    temp *= (long long) A[n-1];
    temp += (long long) (n-1);
    if(temp>=x){
	for(auto it : A){
	    cout<<it<<endl;
	}
	return 0;
    }
    cout<<-1<<endl;

}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,x,y;
    cin>>n>>x>>y;
    vector < long long > A(n,1);
    A[n-1] = y - n + 1;
    long long temp = A[n-1];
    temp *=  A[n-1];
    temp += (n-1);
    if(temp>=x && y>=n){
	for(auto it : A){
	    cout<<it<<endl;
	}
	return 0;
    }
    cout<<-1<<endl;

}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {
	//freopen("die.in", "r", stdin);
	//freopen("output.txt", "w", stdout);
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	cout.tie(NULL);

	ll n,x,y;
	cin >> n >> x >> y;
	ll a = y - (n-1);
	if(a < 0 || (a*a < (x - (n-1))))
		cout << -1;
	else {
		cout << a << endl;
		n--;
		while(n--) cout << 1 << endl;
	}

}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {
	//freopen("die.in", "r", stdin);
	//freopen("output.txt", "w", stdout);
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	cout.tie(NULL);

	ll n,x,y;
	cin >> n >> x >> y;
	ll a = y - (n-1);
	if(a <= 0 || (a*a < (x - (n-1))))
		cout << -1;
	else {
		cout << a << endl;
		n--;
		while(n--) cout << 1 << endl;
	}

}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {
	//freopen("die.in", "r", stdin);
	//freopen("output.txt", "w", stdout);
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	cout.tie(NULL);

	ll n,x,y;
	cin >> n >> x >> y;
	ll a = y - (n-1);
	if(a*a < (x - (n-1)))
		cout << -1;
	else {
		cout << a << endl;
		n--;
		while(n--) cout << 1 << endl;
	}

}


#include<bits/stdc++.h>
#define pb push_back

#define mp make_pair

#define f first
#define s second

typedef long long ll;
using namespace std;

const ll MOD = 1e9 + 7;

const ll MAXN = +100500 * 3;
const ll INF = 1e14;

int main() {
    ll n, x, y;
    cin >> n >> x >> y;
    if((y - (n - 1)) * (y - (n - 1)) + (n - 1) <= x) {
        cout << -1;
    } else {
        cout << y - (n - 1) << endl;
        for(int i = 1; i < n; i++) {
            cout << 1 << endl;
        }
    }
}


#include<bits/stdc++.h>
#define pb push_back

#define mp make_pair

#define f first
#define s second

typedef long long ll;
using namespace std;

const ll MOD = 1e9 + 7;

const ll MAXN = +100500 * 3;
const ll INF = 1e14;

int main() {
    ll n, x, y;
    cin >> n >> x >> y;
    if((y - (n - 1)) * (y - (n - 1)) + (n - 1) < x) {
        cout << -1;
    } else {
        cout << y - (n - 1) << endl;
        for(int i = 1; i < n; i++) {
            cout << 1 << endl;
        }
    }
}


#include<bits/stdc++.h>
#define pb push_back

#define mp make_pair

#define f first
#define s second

typedef long long ll;
using namespace std;

const ll MOD = 1e9 + 7;

const ll MAXN = +100500 * 3;
const ll INF = 1e14;

int main() {
    ll n, x, y;
    cin >> n >> x >> y;
    if((y - (n - 1)) * (y - (n - 1)) + (n - 1) < x || n > y) {
        cout << -1;
    } else {
        cout << y - (n - 1) << endl;
        for(int i = 1; i < n; i++) {
            cout << 1 << endl;
        }
    }
}


#include<bits/stdc++.h>
#define pb push_back

#define mp make_pair

#define f first
#define s second

typedef long long ll;
using namespace std;

const ll MOD = 1e9 + 7;

const ll MAXN = +100500 * 3;
const ll INF = 1e14;

int main() {
    ll n, x, y;
    cin >> n >> x >> y;
    if((y - (n - 1)) * (y - (n - 1)) < x) {
        cout << -1;
    } else {
        cout << y - (n - 1) << endl;
        for(int i = 1; i < n; i++) {
            cout << 1 << endl;
        }
    }
}


#include<bits/stdc++.h>
#include<iostream>
#include <sstream>
#include<string>
#include <vector>
#include <stack>
#include<math.h>
#include<algorithm>
#define ll long long int
#define ld long long double
#define PI 3.14159265
using namespace std;
int main(){
	ll n,x,y;
	cin>>n>>x>>y;
	long double t = (long double)y/n;
	ll t1 = floor(t);
	ll s= pow(t1,2)*(n-1);
	ll an=(y-(n-1)*t1);
	ll ansquare = pow(an,2);
	if(ansquare>=x-s){
		for(ll p=0;p<n-1;p++) cout<<t1<<"\n";
		cout<<an;
	}
	else{
		cout<<"-1";
	}
}