import java.io.*;
static class MyReader {
BufferedInputStream in;
final int bufSize = 1 << 16;
final byte b[] = new byte[bufSize];
MyReader( InputStream in ) {
this.in = new BufferedInputStream(in, bufSize);
}
int nextInt() throws IOException {
int c;
while ((c = nextChar()) <= 32)
;
int x = 0, sign = 1;
if (c == '-') {
sign = -1;
c = nextChar();
}
while (c >= '0') {
x = x * 10 + (c - '0');
c = nextChar();
}
return x * sign;
}
StringBuilder _buf = new StringBuilder();
String nextWord() throws IOException {
int c;
_buf.setLength(0);
while ((c = nextChar()) <= 32 && c != -1)
;
if (c == -1)
return null;
while (c > 32) {
_buf.append((char)c);
c = nextChar();
}
return _buf.toString();
}
int bn = bufSize, k = bufSize;
int nextChar() throws IOException {
if (bn == k) {
k = in.read(b, 0, bufSize);
bn = 0;
}
return bn >= k ? -1 : b[bn++];
}
int nextNotSpace() throws IOException {
int ch;
while ((ch = nextChar()) <= 32 && ch != -1)
;
return ch;
}
}
// MyReader in = new MyReader(System.in);
// MyReader in = new MyReader(new FileInputStream("a.in"));