import java.util.*; import java.util.zip.*; import java.util.List; import java.util.regex.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.concurrent.locks.*; import java.util.function.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.table.*; import java.io.*; import java.net.*; import java.lang.reflect.*; import java.lang.ref.*; import java.lang.management.*; import java.security.*; import java.security.spec.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.awt.geom.*; import javax.imageio.*; import java.math.*; import java.time.Duration; import java.lang.invoke.VarHandle; import java.lang.invoke.MethodHandles; class main { static String formatHours_roundUp(long ms) { return formatHours_roundUp(ms, 1); } static String formatHours_roundUp(long ms, int decimals) { return formatHours_roundUp(toHours(ms), decimals); } static String formatHours_roundUp(double hours) { return formatHours_roundUp(hours, 1); } static String formatHours_roundUp(double hours, int decimals) { String formatted = formatDouble_roundUp(hours, decimals); return eq(formatted, "1") ? "1 hour" : formatted + " hours"; } static double toHours(long ms) { return ms/(60000.0*60); } static String formatDouble_roundUp(double d, int digits) { String format = digits <= 0 ? "0" : "0." + rep(digits, '#'); java.text.DecimalFormat df = decimalFormatEnglish(format); df.setRoundingMode(RoundingMode.UP); return df.format(d); } static boolean eq(Object a, Object b) { return a == b || a != null && b != null && a.equals(b); } static String rep(int n, char c) { return repeat(c, n); } static String rep(char c, int n) { return repeat(c, n); } static List rep(A a, int n) { return repeat(a, n); } static List rep(int n, A a) { return repeat(n, a); } static String decimalFormatEnglish(String format, double d) { return decimalFormatEnglish(format).format(d); } static java.text.DecimalFormat decimalFormatEnglish(String format) { return new java.text.DecimalFormat(format, new java.text.DecimalFormatSymbols(Locale.ENGLISH)); } static String str(Object o) { return o == null ? "null" : o.toString(); } static String str(char[] c) { return c == null ? "null" : new String(c); } static String str(char[] c, int offset, int count) { return new String(c, offset, count); } static String repeat(char c, int n) { n = Math.max(n, 0); char[] chars = new char[n]; for (int i = 0; i < n; i++) chars[i] = c; return new String(chars); } static List repeat(A a, int n) { n = Math.max(n, 0); List l = new ArrayList(n); for (int i = 0; i < n; i++) l.add(a); return l; } static List repeat(int n, A a) { return repeat(a, n); } }