solving hard