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.*;
class main {

static Object[] concatMethodArgs(Object[] args1, Object[] args2) {
  int n1, n2;
  if (args1 == null || (n1 = args1.length) == 0) return args2;
  if (args2 == null || (n2 = args2.length) == 0) return args1;
  
  // actual concat
  Object[] args = new Object[n1+n2];
  for (int i = 0; i < n1; i++)
    args[i] = args1[i];
  for (int i = 0; i < n2; i++)
    args[n1+i] = args2[i];
  return args;
}}