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 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 javax.imageio.*;
import java.math.*;
class main {
static A[] repF_array(int n, IF0 f) {
A[] a = (A[]) (new Object[n]);
for (int i = 0; i < n; i++)
a[i] = f.get();
return a;
}
static A[] repF_array(Class type, int n, IF0 f) {
A[] a = newArrayOfType(type, n);
for (int i = 0; i < n; i++)
a[i] = f.get();
return a;
}
static A[] newArrayOfType(Class type, int n) {
return makeArray(type, n);
}
static A[] makeArray(Class type, int n) {
return (A[]) Array.newInstance(type, n);
}
static interface IF0 {
A get();
}
}