#include <fstream>
#include <memory>
#include <functional>
#include <vector>
#include <cmath>
#include <sstream>