  array_size = gets(chomp:true).to_i
  array = gets.split.map(&:to_i)

  swap_count = 0

  # 一番左を交換値に設定、ループ毎に右に一つ交換値をずらす
  (0...array_size).each do | left_fixed |

    # 交換値を最小値として仮定
    min_num_idx = left_fixed

    # 交換値から配列の最後までを検索値に設定
    (left_fixed...array_size).each do | sch_num_idx |

      # 仮定最小値が検索値よりも大きければ
      if array[ min_num_idx ] > array[ sch_num_idx ]

        # 仮定最小値に検索値を代入
        min_num_idx = sch_num_idx
      end
    end

    # 交換値と最小値が同じでない場合に交換
    unless array[ min_num_idx ] == array[ left_fixed ]
      array[ left_fixed ], array[ min_num_idx ] = array[ min_num_idx ], array[ left_fixed ]
      swap_count += 1
    end
  end

  puts array.join(" ")
  puts swap_count

