import java.util.Scanner;

public class Main {
	public static int count = 0;
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		int[] array = new int[length];
		for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		}
		scanner.close();
		
		bubbleSort(array, length);
		printArray(array);
		System.out.println(count);
	}
	
	public static void bubbleSort(int[] array, int length) {
		// Variable i stands for the smallest value at this moment.
		// j to traverse the remain items, identify the position of the smallest value in the remain queue.
		for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		}
	}
	
	public static void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		}
		System.out.print("\n");
	}
}
 import java.util.Scanner; Scanner java.util public class Main {
	public static int count = 0;
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		int[] array = new int[length];
		for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		}
		scanner.close();
		
		bubbleSort(array, length);
		printArray(array);
		System.out.println(count);
	}
	
	public static void bubbleSort(int[] array, int length) {
		// Variable i stands for the smallest value at this moment.
		// j to traverse the remain items, identify the position of the smallest value in the remain queue.
		for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		}
	}
	
	public static void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		}
		System.out.print("\n");
	}
} Main public static int count = 0; count 0 public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		int[] array = new int[length];
		for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		}
		scanner.close();
		
		bubbleSort(array, length);
		printArray(array);
		System.out.println(count);
	} main {
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		int[] array = new int[length];
		for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		}
		scanner.close();
		
		bubbleSort(array, length);
		printArray(array);
		System.out.println(count);
	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int length = scanner.nextInt(); length scanner.nextInt() scanner.nextInt scanner int[] array = new int[length]; array new int[length] length for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		} int i=0; int i=0; i 0 i<length i length i++ i++ i {
			array[i] = scanner.nextInt();
		} {
			array[i] = scanner.nextInt();
		} array[i] = scanner.nextInt() array[i] array i scanner.nextInt() scanner.nextInt scanner scanner.close() scanner.close scanner bubbleSort(array, length) bubbleSort array length printArray(array) printArray array System.out.println(count) System.out.println System.out System System.out count String[] args args public static void bubbleSort(int[] array, int length) {
		// Variable i stands for the smallest value at this moment.
		// j to traverse the remain items, identify the position of the smallest value in the remain queue.
		for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		}
	} bubbleSort {
		// Variable i stands for the smallest value at this moment.
		// j to traverse the remain items, identify the position of the smallest value in the remain queue.
		for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		}
	} for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		} int i=0; int i=0; i 0 i<length i length i++ i++ i {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		} {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		} int mini = i; mini i for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			} int j=i+1; int j=i+1; j i+1 i 1 j<length j length j++ j++ j {
				if (array[j] < array[mini]) {
					mini = j;
				}
			} {
				if (array[j] < array[mini]) {
					mini = j;
				}
			} if (array[j] < array[mini]) {
					mini = j;
				} array[j] < array[mini] array[j] array j array[mini] array mini {
					mini = j;
				} mini = j mini j if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			} mini != i mini i {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			} array[mini] = array[mini] + array[i] array[mini] array mini array[mini] + array[i] array[mini] array mini array[i] array i array[i] = array[mini] - array[i] array[i] array i array[mini] - array[i] array[mini] array mini array[i] array i array[mini] = array[mini] - array[i] array[mini] array mini array[mini] - array[i] array[mini] array mini array[i] array i count++ count int[] array array int length length public static void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		}
		System.out.print("\n");
	} printArray {
		for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		}
		System.out.print("\n");
	} for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		} int i = 0; int i = 0; i 0 i < array.length i array.length array array.length i++ i++ i {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		} {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		} if (i>0) System.out.print(" "); i>0 i 0 System.out.print(" ") System.out.print System.out System System.out " " System.out.print(array[i]) System.out.print System.out System System.out array[i] array i System.out.print("\n") System.out.print System.out System System.out "\n" int[] array array public class Main {
	public static int count = 0;
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		int[] array = new int[length];
		for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		}
		scanner.close();
		
		bubbleSort(array, length);
		printArray(array);
		System.out.println(count);
	}
	
	public static void bubbleSort(int[] array, int length) {
		// Variable i stands for the smallest value at this moment.
		// j to traverse the remain items, identify the position of the smallest value in the remain queue.
		for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		}
	}
	
	public static void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		}
		System.out.print("\n");
	}
} public class Main {
	public static int count = 0;
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		int[] array = new int[length];
		for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		}
		scanner.close();
		
		bubbleSort(array, length);
		printArray(array);
		System.out.println(count);
	}
	
	public static void bubbleSort(int[] array, int length) {
		// Variable i stands for the smallest value at this moment.
		// j to traverse the remain items, identify the position of the smallest value in the remain queue.
		for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		}
	}
	
	public static void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		}
		System.out.print("\n");
	}
} Main
import java.util.Scanner;

public class Main {
	public static int count = 0;
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		int[] array = new int[length];
		for (int i=0; i<length; i++) {
			array[i] = scanner.nextInt();
		}
		scanner.close();
		
		bubbleSort(array, length);
		printArray(array);
		System.out.println(count);
	}
	
	public static void bubbleSort(int[] array, int length) {
		// Variable i stands for the smallest value at this moment.
		// j to traverse the remain items, identify the position of the smallest value in the remain queue.
		for (int i=0; i<length; i++) {
			int mini = i;
			for (int j=i+1; j<length; j++) {
				if (array[j] < array[mini]) {
					mini = j;
				}
			}
			// Swap mini and i if mini!=i
			if (mini != i) {
				array[mini] = array[mini] + array[i];
				array[i] = array[mini] - array[i];
				array[mini] = array[mini] - array[i];
				count++;
			}
		}
	}
	
	public static void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			if (i>0) System.out.print(" ");
			System.out.print(array[i]);
		}
		System.out.print("\n");
	}
}

