import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt(); // N*N格
int i = scanner.nextInt(); // 第i行,格子(i,j)
int j = scanner.nextInt(); // 第j列,格子(i,j)
// (i,j)同一行上格子的位置
for (int a = 1; a <= N; a++) {
System.out.print("(" + i + "," + a + ")");
}
System.out.println();
// (i,j)同一列上格子的位置
for (int a = 1; a <= N; a++) {
System.out.print("(" + a + "," + j + ")");
}
System.out.println();
// 左上到右下对角线上的格子的位置
// 从上往下,所以小到大,++
for (int a = 1; a <= N; a++) {
for (int b = 1; b <= N; b++) {
if ((a - b) == (i - j)) {
System.out.print("(" + a + "," + b + ")");
}
}
}
System.out.println();
// 左下到右上对角线上的格子的位置
// 从下往上,所以大到小,--
for (int a = N; a >= 1; a--) {
for (int b = N; b >= 1; b--) {
if ((a + b) == (i + j)) {
System.out.print("(" + a + "," + b + ")");
}
}
}
}
}
/**************************************************************
Problem: 1994
User: admin
Language: Java
Result: Accepted
Time:2616 ms
Memory:42864 kb
****************************************************************/