For [the rule in the list](https://github.com/ClickHouse/ClickHouse/blob/82fc7375dd3ac4faae6c3b0db9f3a28fb2802d05/tests/config/top_level_domains/public_suffix_list.dat#L6430) `*.sch.uk` 

and domain like `www.something.sheffield.sch.uk`  the correct / expected result is `sheffield.sch.uk`

Example with python (correct)

```
-- pip install publicsuffix2
-- python3
>>> from publicsuffix2 import get_public_suffix
>>> get_public_suffix('www.something.sheffield.sch.uk')
'something.sheffield.sch.uk'
```

Same from clickhouse:
```
SELECT cutToFirstSignificantSubdomain('www.something.sheffield.sch.uk')

Query id: 9661461f-a393-43ea-97a1-47c0a8850515

┌─cutToFirstSignificantSubdomain('www.something.sheffield.sch.uk')─┐
│ sch.uk                                                           │
└──────────────────────────────────────────────────────────────────┘
```

/cc @azat 
{
    static TLDListsHolder instance;
    return instance;
}
TLDListsHolder::TLDListsHolder() = default;
void TLDListsHolder::parseConfig(const std::string & top_level_domains_path, const Poco::Util::AbstractConfiguration & config)
{
    Poco::Util::AbstractConfiguration::Keys config_keys;
    config.keys("top_level_domains_lists", config_keys);
    Poco::Logger * log = &Poco::Logger::get("TLDListsHolder");
    for (const auto & key : config_keys)
    {
        const std::string & path = top_level_domains_path + config.getString("top_level_domains_lists." + key);
        LOG_TRACE(log, "{} loading from {}", key, path);
        size_t hosts = parseAndAddTldList(key, path);
        LOG_INFO(log, "{} was added ({} hosts)", key, hosts);
    }
}
size_t TLDListsHolder::parseAndAddTldList(const std::string & name, const std::string & path)
{
    std::unordered_set<std::string> tld_list_tmp;
    ReadBufferFromFile in(path);
    String line;
    while (!in.eof())
    {
        readEscapedStringUntilEOL(line, in);
        if (!in.eof())
            ++in.position();
        
        if (line.size() > 2 && line[0] == '/' && line[1] == '/')