import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] A = new int[N];
    for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    }
    sc.close();
    selectionSort(A, N);
  }

  static void selectionSort(int[] A, int N) {
    int count = 0;
    for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    }
    printArray(A);
    System.out.println(count);
  }

  static void swap(int[] A, int i, int j) {
    int tmp = A[i];
    A[i] = A[j];
    A[j] = tmp;
  }

  static void printArray(int[] A) {
    int n = A.length;
    for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    }
    System.out.print(A[n - 1] + "\n");
  }
} import java.util.Scanner; Scanner java.util public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] A = new int[N];
    for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    }
    sc.close();
    selectionSort(A, N);
  }

  static void selectionSort(int[] A, int N) {
    int count = 0;
    for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    }
    printArray(A);
    System.out.println(count);
  }

  static void swap(int[] A, int i, int j) {
    int tmp = A[i];
    A[i] = A[j];
    A[j] = tmp;
  }

  static void printArray(int[] A) {
    int n = A.length;
    for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    }
    System.out.print(A[n - 1] + "\n");
  }
} Main public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] A = new int[N];
    for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    }
    sc.close();
    selectionSort(A, N);
  } main {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] A = new int[N];
    for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    }
    sc.close();
    selectionSort(A, N);
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int[] A = new int[N]; A new int[N] N for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
      A[i] = sc.nextInt();
    } {
      A[i] = sc.nextInt();
    } A[i] = sc.nextInt() A[i] A i sc.nextInt() sc.nextInt sc sc.close() sc.close sc selectionSort(A, N) selectionSort A N String[] args args static void selectionSort(int[] A, int N) {
    int count = 0;
    for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    }
    printArray(A);
    System.out.println(count);
  } selectionSort {
    int count = 0;
    for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    }
    printArray(A);
    System.out.println(count);
  } int count = 0; count 0 for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    } int i = 0; int i = 0; i 0 i < N - 1 i N - 1 N 1 i++ i++ i {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    } {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    } int minj = i; minj i for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      } int j = i; int j = i; j i j < N j N j++ j++ j {
        if (A[j] < A[minj])
          minj = j;
      } {
        if (A[j] < A[minj])
          minj = j;
      } if (A[j] < A[minj])
          minj = j; A[j] < A[minj] A[j] A j A[minj] A minj minj = j minj j if (i != minj) {
        swap(A, i, minj);
        count++;
      } i != minj i minj {
        swap(A, i, minj);
        count++;
      } swap(A, i, minj) swap A i minj count++ count printArray(A) printArray A System.out.println(count) System.out.println System.out System System.out count int[] A A int N N static void swap(int[] A, int i, int j) {
    int tmp = A[i];
    A[i] = A[j];
    A[j] = tmp;
  } swap {
    int tmp = A[i];
    A[i] = A[j];
    A[j] = tmp;
  } int tmp = A[i]; tmp A[i] A i A[i] = A[j] A[i] A i A[j] A j A[j] = tmp A[j] A j tmp int[] A A int i i int j j static void printArray(int[] A) {
    int n = A.length;
    for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    }
    System.out.print(A[n - 1] + "\n");
  } printArray {
    int n = A.length;
    for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    }
    System.out.print(A[n - 1] + "\n");
  } int n = A.length; n A.length A A.length for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    } int i = 0; int i = 0; i 0 i < n - 1 i n - 1 n 1 i++ i++ i {
      System.out.printf("%d ", A[i]);
    } {
      System.out.printf("%d ", A[i]);
    } System.out.printf("%d ", A[i]) System.out.printf System.out System System.out "%d " A[i] A i System.out.print(A[n - 1] + "\n") System.out.print System.out System System.out A[n - 1] + "\n" A[n - 1] A n - 1 n 1 "\n" int[] A A public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] A = new int[N];
    for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    }
    sc.close();
    selectionSort(A, N);
  }

  static void selectionSort(int[] A, int N) {
    int count = 0;
    for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    }
    printArray(A);
    System.out.println(count);
  }

  static void swap(int[] A, int i, int j) {
    int tmp = A[i];
    A[i] = A[j];
    A[j] = tmp;
  }

  static void printArray(int[] A) {
    int n = A.length;
    for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    }
    System.out.print(A[n - 1] + "\n");
  }
} public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] A = new int[N];
    for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    }
    sc.close();
    selectionSort(A, N);
  }

  static void selectionSort(int[] A, int N) {
    int count = 0;
    for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    }
    printArray(A);
    System.out.println(count);
  }

  static void swap(int[] A, int i, int j) {
    int tmp = A[i];
    A[i] = A[j];
    A[j] = tmp;
  }

  static void printArray(int[] A) {
    int n = A.length;
    for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    }
    System.out.print(A[n - 1] + "\n");
  }
} Main
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] A = new int[N];
    for (int i = 0; i < N; i++) {
      A[i] = sc.nextInt();
    }
    sc.close();
    selectionSort(A, N);
  }

  static void selectionSort(int[] A, int N) {
    int count = 0;
    for (int i = 0; i < N - 1; i++) {
      int minj = i;
      for (int j = i; j < N ; j++) {
        if (A[j] < A[minj])
          minj = j;
      }
      if (i != minj) {
        swap(A, i, minj);
        count++;
      }
    }
    printArray(A);
    System.out.println(count);
  }

  static void swap(int[] A, int i, int j) {
    int tmp = A[i];
    A[i] = A[j];
    A[j] = tmp;
  }

  static void printArray(int[] A) {
    int n = A.length;
    for (int i = 0; i < n - 1; i++) {
      System.out.printf("%d ", A[i]);
    }
    System.out.print(A[n - 1] + "\n");
  }
}
