#include <iostream>
#include <sstream>
#include <string>
#include <map>
#include <limits>
#include <functional>