Объясните, пожалуйста, как и почему данный код работает?
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
int b = Integer.parseInt(reader.readLine());
int c = Integer.parseInt(reader.readLine());
if (a < b) {
int temp = a;
a = b;
b = temp;
}
if (b < c) {
int temp = b;
b = c;
c = temp;
}
if (a < b) {
int temp = a;
a = b;
b = temp;
}
System.out.println(a + " " + b + " " + c);
}
}