#include <algorithm>
#include <assert.h>
#include <boost/algorithm/string.hpp>
#include <boost/math/special_functions/fpclassify.hpp>
#include <boost/math/special_functions/round.hpp>
#include <boost/random.hpp>
#include <boost/shared_ptr.hpp>
#include <cmath>
#include <ctime>
#include <fstream>
#include <iostream>
#include <limits>
#include <map>
#include <math.h>
#include <string>
#include <string.h>
#include <sys/types.h>
#include <vector>