import java.util.Scanner;

public class Main {
	private static int count = 0;

	/**
	 * バブルソートをするプログラム
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int[] value = new int[num];
		for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		}

		int[] sort = bubbleSort(value, num);
		for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		}
		System.out.println("");
		System.out.println(count); // ソート回数

		scan.close();
	}

	/**
	 * バブルソート
	 * 
	 * @param A
	 *            ソートする配列
	 * @param N
	 *            ソートする個数
	 * @return 昇順にソートされた配列
	 */
	public static int[] bubbleSort(int[] A, int N) {
		boolean flag = true;
		while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		}
		return A;
	}

	public static void counter() {

		count++;
	}
}
 import java.util.Scanner; Scanner java.util public class Main {
	private static int count = 0;

	/**
	 * バブルソートをするプログラム
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int[] value = new int[num];
		for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		}

		int[] sort = bubbleSort(value, num);
		for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		}
		System.out.println("");
		System.out.println(count); // ソート回数

		scan.close();
	}

	/**
	 * バブルソート
	 * 
	 * @param A
	 *            ソートする配列
	 * @param N
	 *            ソートする個数
	 * @return 昇順にソートされた配列
	 */
	public static int[] bubbleSort(int[] A, int N) {
		boolean flag = true;
		while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		}
		return A;
	}

	public static void counter() {

		count++;
	}
} Main private static int count = 0; count 0 /**
	 * バブルソートをするプログラム
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int[] value = new int[num];
		for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		}

		int[] sort = bubbleSort(value, num);
		for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		}
		System.out.println("");
		System.out.println(count); // ソート回数

		scan.close();
	} main {
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int[] value = new int[num];
		for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		}

		int[] sort = bubbleSort(value, num);
		for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		}
		System.out.println("");
		System.out.println(count); // ソート回数

		scan.close();
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int num = scan.nextInt(); num scan.nextInt() scan.nextInt scan int[] value = new int[num]; value new int[num] num for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		} int i = 0; int i = 0; i 0 i < num i num i++ i++ i {
			value[i] = scan.nextInt();
		} {
			value[i] = scan.nextInt();
		} value[i] = scan.nextInt() value[i] value i scan.nextInt() scan.nextInt scan int[] sort = bubbleSort(value, num); sort bubbleSort(value, num) bubbleSort value num for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		} int j = 0; int j = 0; j 0 j < num j num j++ j++ j {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		} {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		} if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			} j == num - 1 j num - 1 num 1 {
				System.out.print(sort[j]);
			} System.out.print(sort[j]) System.out.print System.out System System.out sort[j] sort j {
				System.out.print(sort[j] + " ");
			} System.out.print(sort[j] + " ") System.out.print System.out System System.out sort[j] + " " sort[j] sort j " " System.out.println("") System.out.println System.out System System.out "" System.out.println(count) System.out.println System.out System System.out count scan.close() scan.close scan String[] args args /**
	 * バブルソート
	 * 
	 * @param A
	 *            ソートする配列
	 * @param N
	 *            ソートする個数
	 * @return 昇順にソートされた配列
	 */
	public static int[] bubbleSort(int[] A, int N) {
		boolean flag = true;
		while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		}
		return A;
	} bubbleSort {
		boolean flag = true;
		while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		}
		return A;
	} boolean flag = true; flag true while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		} flag {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		} flag = false flag false for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			} int j = N - 1; int j = N - 1; j N - 1 N 1 j >= 1 j 1 j-- j-- j {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			} {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			} if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				} A[j] < A[j - 1] A[j] A j A[j - 1] A j - 1 j 1 {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				} int tmp; tmp tmp = A[j] tmp A[j] A j A[j] = A[j - 1] A[j] A j A[j - 1] A j - 1 j 1 A[j - 1] = tmp A[j - 1] A j - 1 j 1 tmp flag = true flag true counter() counter return A; A int[] A A int N N public static void counter() {

		count++;
	} counter {

		count++;
	} count++ count public class Main {
	private static int count = 0;

	/**
	 * バブルソートをするプログラム
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int[] value = new int[num];
		for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		}

		int[] sort = bubbleSort(value, num);
		for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		}
		System.out.println("");
		System.out.println(count); // ソート回数

		scan.close();
	}

	/**
	 * バブルソート
	 * 
	 * @param A
	 *            ソートする配列
	 * @param N
	 *            ソートする個数
	 * @return 昇順にソートされた配列
	 */
	public static int[] bubbleSort(int[] A, int N) {
		boolean flag = true;
		while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		}
		return A;
	}

	public static void counter() {

		count++;
	}
} public class Main {
	private static int count = 0;

	/**
	 * バブルソートをするプログラム
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int[] value = new int[num];
		for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		}

		int[] sort = bubbleSort(value, num);
		for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		}
		System.out.println("");
		System.out.println(count); // ソート回数

		scan.close();
	}

	/**
	 * バブルソート
	 * 
	 * @param A
	 *            ソートする配列
	 * @param N
	 *            ソートする個数
	 * @return 昇順にソートされた配列
	 */
	public static int[] bubbleSort(int[] A, int N) {
		boolean flag = true;
		while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		}
		return A;
	}

	public static void counter() {

		count++;
	}
} Main
import java.util.Scanner;

public class Main {
	private static int count = 0;

	/**
	 * バブルソートをするプログラム
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int[] value = new int[num];
		for (int i = 0; i < num; i++) {
			value[i] = scan.nextInt();
		}

		int[] sort = bubbleSort(value, num);
		for (int j = 0; j < num; j++) {
			if (j == num - 1) {
				System.out.print(sort[j]);
			} else {
				System.out.print(sort[j] + " ");
			}
		}
		System.out.println("");
		System.out.println(count); // ソート回数

		scan.close();
	}

	/**
	 * バブルソート
	 * 
	 * @param A
	 *            ソートする配列
	 * @param N
	 *            ソートする個数
	 * @return 昇順にソートされた配列
	 */
	public static int[] bubbleSort(int[] A, int N) {
		boolean flag = true;
		while (flag) {
			flag = false;
			for (int j = N - 1; j >= 1; j--) {
				if (A[j] < A[j - 1]) {
					int tmp;
					tmp = A[j];
					A[j] = A[j - 1];
					A[j - 1] = tmp;
					flag = true;
					counter();
				}
			}
		}
		return A;
	}

	public static void counter() {

		count++;
	}
}

