import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		StringTokenizer stk;
		int[] arrays;
		int youso=0;
		int counter=0;
		try {
			str=bfr.readLine();
			youso=Integer.parseInt(str);
			arrays=new int[youso];

			str=bfr.readLine();
			stk=new StringTokenizer(str," ");

			while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			}
			Bubble(arrays);

		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
	}

	static void Bubble(int[] a) {
		int tmp1,tmp2=0;
		int ookisa=a.length;
		int kaisu=0;

		for(int i=0; i<ookisa-1; i++) {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		}
		String moji="";
		for(int i=0; i<ookisa-1; i++) {
			moji=moji+a[i]+" ";
		}
		moji=moji+a[ookisa-1];
		System.out.println(moji);
		System.out.println(kaisu);


	}
}

 import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.StringTokenizer; StringTokenizer java.util class Main{
	public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		StringTokenizer stk;
		int[] arrays;
		int youso=0;
		int counter=0;
		try {
			str=bfr.readLine();
			youso=Integer.parseInt(str);
			arrays=new int[youso];

			str=bfr.readLine();
			stk=new StringTokenizer(str," ");

			while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			}
			Bubble(arrays);

		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
	}

	static void Bubble(int[] a) {
		int tmp1,tmp2=0;
		int ookisa=a.length;
		int kaisu=0;

		for(int i=0; i<ookisa-1; i++) {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		}
		String moji="";
		for(int i=0; i<ookisa-1; i++) {
			moji=moji+a[i]+" ";
		}
		moji=moji+a[ookisa-1];
		System.out.println(moji);
		System.out.println(kaisu);


	}
} Main public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		StringTokenizer stk;
		int[] arrays;
		int youso=0;
		int counter=0;
		try {
			str=bfr.readLine();
			youso=Integer.parseInt(str);
			arrays=new int[youso];

			str=bfr.readLine();
			stk=new StringTokenizer(str," ");

			while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			}
			Bubble(arrays);

		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
	} main {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		StringTokenizer stk;
		int[] arrays;
		int youso=0;
		int counter=0;
		try {
			str=bfr.readLine();
			youso=Integer.parseInt(str);
			arrays=new int[youso];

			str=bfr.readLine();
			stk=new StringTokenizer(str," ");

			while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			}
			Bubble(arrays);

		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
	} BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in)); bfr new BufferedReader(new InputStreamReader(System.in)) String str=""; str "" StringTokenizer stk; stk int[] arrays; arrays int youso=0; youso 0 int counter=0; counter 0 try {
			str=bfr.readLine();
			youso=Integer.parseInt(str);
			arrays=new int[youso];

			str=bfr.readLine();
			stk=new StringTokenizer(str," ");

			while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			}
			Bubble(arrays);

		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} IOException e {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e {
			str=bfr.readLine();
			youso=Integer.parseInt(str);
			arrays=new int[youso];

			str=bfr.readLine();
			stk=new StringTokenizer(str," ");

			while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			}
			Bubble(arrays);

		} str=bfr.readLine() str bfr.readLine() bfr.readLine bfr youso=Integer.parseInt(str) youso Integer.parseInt(str) Integer.parseInt Integer str arrays=new int[youso] arrays new int[youso] youso str=bfr.readLine() str bfr.readLine() bfr.readLine bfr stk=new StringTokenizer(str," ") stk new StringTokenizer(str," ") while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			} stk.hasMoreTokens() stk.hasMoreTokens stk {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			} arrays[counter]=Integer.parseInt(stk.nextToken()) arrays[counter] arrays counter Integer.parseInt(stk.nextToken()) Integer.parseInt Integer stk.nextToken() stk.nextToken stk counter++ counter Bubble(arrays) Bubble arrays String[] args args static void Bubble(int[] a) {
		int tmp1,tmp2=0;
		int ookisa=a.length;
		int kaisu=0;

		for(int i=0; i<ookisa-1; i++) {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		}
		String moji="";
		for(int i=0; i<ookisa-1; i++) {
			moji=moji+a[i]+" ";
		}
		moji=moji+a[ookisa-1];
		System.out.println(moji);
		System.out.println(kaisu);


	} Bubble {
		int tmp1,tmp2=0;
		int ookisa=a.length;
		int kaisu=0;

		for(int i=0; i<ookisa-1; i++) {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		}
		String moji="";
		for(int i=0; i<ookisa-1; i++) {
			moji=moji+a[i]+" ";
		}
		moji=moji+a[ookisa-1];
		System.out.println(moji);
		System.out.println(kaisu);


	} int tmp1 tmp1 tmp2=0; tmp2 0 int ookisa=a.length; ookisa a.length a a.length int kaisu=0; kaisu 0 for(int i=0; i<ookisa-1; i++) {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		} int i=0; int i=0; i 0 i<ookisa-1 i ookisa-1 ookisa 1 i++ i++ i {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		} {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		} for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			} int j=ookisa-1; int j=ookisa-1; j ookisa-1 ookisa 1 j>=i+1 j i+1 i 1 j-- j-- j {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			} {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			} if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				} a[j]<a[j-1] a[j] a j a[j-1] a j-1 j 1 {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				} tmp1=a[j] tmp1 a[j] a j tmp2=a[j-1] tmp2 a[j-1] a j-1 j 1 a[j]=tmp2 a[j] a j tmp2 a[j-1]=tmp1 a[j-1] a j-1 j 1 tmp1 kaisu++ kaisu String moji=""; moji "" for(int i=0; i<ookisa-1; i++) {
			moji=moji+a[i]+" ";
		} int i=0; int i=0; i 0 i<ookisa-1 i ookisa-1 ookisa 1 i++ i++ i {
			moji=moji+a[i]+" ";
		} {
			moji=moji+a[i]+" ";
		} moji=moji+a[i]+" " moji moji+a[i]+" " moji+a[i]+" " moji a[i] a i " " moji=moji+a[ookisa-1] moji moji+a[ookisa-1] moji a[ookisa-1] a ookisa-1 ookisa 1 System.out.println(moji) System.out.println System.out System System.out moji System.out.println(kaisu) System.out.println System.out System System.out kaisu int[] a a
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		StringTokenizer stk;
		int[] arrays;
		int youso=0;
		int counter=0;
		try {
			str=bfr.readLine();
			youso=Integer.parseInt(str);
			arrays=new int[youso];

			str=bfr.readLine();
			stk=new StringTokenizer(str," ");

			while(stk.hasMoreTokens()) {
				arrays[counter]=Integer.parseInt(stk.nextToken());
				counter++;
			}
			Bubble(arrays);

		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
	}

	static void Bubble(int[] a) {
		int tmp1,tmp2=0;
		int ookisa=a.length;
		int kaisu=0;

		for(int i=0; i<ookisa-1; i++) {
			for(int j=ookisa-1; j>=i+1; j--) {
				if(a[j]<a[j-1]) {
					tmp1=a[j];
					tmp2=a[j-1];
					a[j]=tmp2;
					a[j-1]=tmp1;
					kaisu++;
				}
			}
		}
		String moji="";
		for(int i=0; i<ookisa-1; i++) {
			moji=moji+a[i]+" ";
		}
		moji=moji+a[ookisa-1];
		System.out.println(moji);
		System.out.println(kaisu);


	}
}


