import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Scanner;
import java.util.StringTokenizer;
//import static java.lang.System.out;
public class Main {
//Scanner 内部使用了 InputStreamReader
static Scanner sc = new Scanner(new BufferedInputStream(System.in, 1024));
// static BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(System.in, 2048)), 1024);
// static PrintWriter pw = new PrintWriter(System.out, true); //自动刷新
static BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(System.in, 8192 << 3)), 8192 << 2);
//PrintWriter: 内置 new BufferedWriter(new OutputStreamWriter())
//PrintWriter: 更多的数据输出方法,但内部缓冲大小是默认的 BufferedWriter,当输出流是控制台时, 流对象将是 PrintStream
static PrintWriter pw = new PrintWriter(new BufferedOutputStream(System.out, 8192 << 3));
//可控的缓冲大小,可控刷新流,append 添加,write 写入,但写出 int | long | double | boolean 没有整型浮点型类型,只有String和char (可以自己转换成 String 写入)
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new BufferedOutputStream(System.out, 8192 << 3)), 8192 << 2);
static class IN1 { //从输入流读取的每个字节被视为'\u0000'到'\u00FF'范围内的字符。 字符值用于查找字符的五个可能属性: 空格 , 字母 , 数字 , 字符串引号和注释字符
//charBufferSize 8192 一次读取字符个数, 8192 * 2 = 16384 b字节 / 1024 = 16 kb
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(new BufferedInputStream(System.in, 8192 << 8)), 8192 << 7));
static int nextInt() throws IOException {in.nextToken(); return (int) in.nval;}
static String next() throws IOException {in.nextToken(); return in.sval;}
static long nextLong() throws IOException {in.nextToken(); return (long) in.nval;}
static double nextDouble() throws IOException {in.nextToken(); return in.nval;}
static byte nextByte() throws IOException {in.nextToken(); return (byte) in.nval;}
static char nextChar() throws IOException {in.nextToken(); return in.sval.charAt(0);} //注意只有 length == 1 时
}
static class IN2 { //是字符就读取
static BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(System.in, 8192 << 7)), 8192 << 6);
static StringTokenizer st;
static String next() {
while (st == null || !st.hasMoreTokens()) {try {st = new StringTokenizer(br.readLine());} catch (IOException e) {e.printStackTrace();}}
return st.nextToken();
}
static int nextInt() {return Integer.parseInt(next());}
static String nextLine() {String str = null;try {str = br.readLine();} catch (IOException e) {e.printStackTrace();}return str;}
static long nextLong() {return Long.parseLong(next());}
static byte nextByte() {return Byte.parseByte(next());}
static char nextChar() {return next().charAt(0);} //注意只有 length == 1 时
static double nextDouble() {return Double.parseDouble(next());}
}
static class Time {
{
long beginTime = System.currentTimeMillis();
// run coding ....
long endTime = System.currentTimeMillis();
System.out.println(endTime - beginTime + "ms");
}
}
public static void main(String[] args) throws Exception {
}
}
03-31