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 long[] longArrayFromBytes_littleEndian_flexLength(byte[] a) {
  long[] b = new long[(a.length+7)/8];
  for (int i = 0; i < b.length; i++)
    b[i] = longFromBytes_littleEndian_partial(a, i*8);
  return b;
}
static long longFromBytes_littleEndian_partial(byte[] a, int i) {
  return (ubyteToLong(i+7 >= a.length ? 0 : a[i+7]) << 56
    | (ubyteToLong(i+6 >= a.length ? 0 : a[i+6]) << 48
    | (ubyteToLong(i+5 >= a.length ? 0 : a[i+5]) << 40
    | (ubyteToLong(i+4 >= a.length ? 0 : a[i+4]) << 32
    | (ubyteToLong(i+3 >= a.length ? 0 : a[i+3]) << 24
    | (ubyteToLong(i+2 >= a.length ? 0 : a[i+2]) << 16
    | (ubyteToLong(i+1 >= a.length ? 0 : a[i+1]) << 8
    | ubyteToLong(a[i]))))))));
}




static long ubyteToLong(byte b) {
  return b & 0x0FFL;
}

static long ubyteToLong(char c) {
  return c & 0x0FFL;
}



}