#define unused __attribute__((unused))
#include<assert.h>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<vector>
using std::vector;
#include<list>
using std::list;
#include<stack>
using std::stack;
#include<utility>
using std::pair;
#include<map>
using std::map;
#include<algorithm>
#include<string>
using std::string;
const size_t NOT_FOUND = string::npos;
#include<iostream>
using std::istream;
using std::ostream;
using std::iostream;
using std::cin;
using std::cout;
using std::cerr;
#include<sstream>
using std::istringstream;
using std::ostringstream;
#include<fstream>
using std::ifstream;
using std::ofstream;
#include <locale>
using std::isspace; // unicode-aware
#include "type_list"
#include "function_list"
#include "file_list"
#include "test_file_list"