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

public class Generator {

	Scanner in;
	PrintWriter out;

   /*
   генератор тестов "от последовательности - к последовательности"
   */


	void asserT(boolean e) {
		if (!e) {
			throw new Error();
		}
	}

	boolean isCorrect(char []s) {
		int d = 0;
		for (int i = 0; i < s.length; i++) {
			if (s[i] == '(') {
				d++;
			} else {
				asserT(s[i] == ')');
				d--;
				if (d < 0) {
					return false;
				}
			}
		}
		return d == 0;
	}

   /*
   генерим правильную скобочную последовательность заданной длины
   */

	void generateCorrect(char []s) {
		asserT(s.length % 2 == 0);
      int d = 0;
      for (int i = 0; i < s.length; i++) {
      	if (d == 0) {
      		s[i] = '(';
      		d++;
      	} else if (s.length - i - 1 < d) {
      	  s[i] = ')';
      	  d--;
      	} else {
      		int val = rand(2);
      		if (val == 0) {
      			d--;
      			s[i] = ')';
      		} else {
      			d++;
      			s[i] = '(';
      		}
      	}
      }
      asserT(d == 0);
	}

	void generateRandom(char []s) {
		asserT(s.length % 2 == 0);
		int d = 0;
		for (int i = 0; i < s.length; i++) {
			int remain = s.length - i;
			if (d == -remain) {
				s[i] = '(';
				d++;
			} else if (remain == d) {
      		s[i] = ')';
      		d--;
      	} else if (rand(2) == 0) {
				s[i] = '(';
				d++;
			} else {
				s[i] = ')';
				d--;
			}
		}
		asserT(d == 0);
	}

	int getDistance(char []s1, char []s2) {
		asserT(s1.length == s2.length);
		int ans = 0;                   		
		for (int i = 0; i < s1.length; i++) {
			if (s1[i] != s2[i]) {
				ans++;
			}
		}
		return ans;
	}

	int rand(int size) {
		return (int)(Math.random() * 10000) % size;
	}
   
	void solve(){
		int len = in.nextInt();
		int nQueries = in.nextInt();
   	
   	char []s1 = new char[len];
   	char []s2 = new char[len];
   	
   	if (rand(2) == 0) {
   		generateCorrect(s1);
   	} else {
   		generateRandom(s1);
   	}

   	if (rand(2) == 0) {
   		generateCorrect(s2);
   	} else {
   		generateRandom(s2);
   	}

   	out.println(s1);
   	out.println(nQueries);
   	int remain = nQueries;
   	while (true) {
   		for (int i = 0; i < len; i++) {
   			if (s1[i] != s2[i]) {
   				if (nQueries == 0) {
   					return;
   				}
   				out.println(i);
   				nQueries--;   				
   			}
   		}
   		char []t = s1;
   		s1 = s2;
   		s2 = t;
   		if (rand(2) == 0) {
   			generateCorrect(s2);
   		} else {
   			generateRandom(s2);
   		}
   	}
   }

	void run(){
		try {
			in = new Scanner(System.in);
			out = new PrintWriter(new FileWriter("10.in"));
		} catch (IOException e) {
			throw new Error();
		}

		try {
			solve();
		} finally {
			out.close();
		}
	}

	public static void main(String []args) {
		new Generator().run();
	}
};