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 formatDays(Duration d) { return formatDays(d, 1); }
static String formatDays(Duration d, int decimals) {
  return formatDays(toMS(d), decimals);
}

static String formatDays(long ms) { return formatDays(ms, 1); }
static String formatDays(long ms, int decimals) {
  return formatDays(toDays(ms), decimals);
}
  
static String formatDays(double days) { return formatDays(days, 1); }
static String formatDays(double days, int decimals) {
  String formatted = formatDouble(days, decimals);
  return eq(formatted, "1") ? "1 day" : formatted + " days";
}
static long toMS(double seconds) {
  return (long) (seconds*1000);
}

static long toMS(Duration d) {
  return d == null ? 0 : d.toMillis();
}


static double toDays(long ms) {
  return ms/(60000.0*60*24);
}


static String formatDouble(double d, int digits) {
  String format = digits <= 0 ? "0" : "0." + rep(digits, '#');
  return decimalFormatEnglish(format, d);
}

static String formatDouble(double d) {
  return str(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 <A> List<A> rep(A a, int n) {
  return repeat(a, n);
}

static <A> List<A> 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 <A> List<A> repeat(A a, int n) {
  n = Math.max(n, 0);
  List<A> l = new ArrayList(n);
  for (int i = 0; i < n; i++)
    l.add(a);
  return l;
}

static <A> List<A> repeat(int n, A a) {
  return repeat(a, n);
}



}