**Describe the unexpected behaviour**
When I use function h3kRing,illegal type error occured.

On issue [34708](https://github.com/ClickHouse/ClickHouse/issues/34708),h3 functions have illegal parameter type.Old problem resolved in ClickHouse 22.3.2.1.But error occured when I execute query:
```sql
select AAA,BBB,CCC,DDD,h3kRing(DDD,1),EEE,FFF,GGG from core.dis_last;
```
```
2022.03.20 02:18:23.816553 [ 49963 ] {4d9fcd3e-f7c8-41e8-b0d2-1f321658437b} <Error> DynamicQueryHandler: Code: 43. DB::Exception: Illegal type UInt8 of argument 2 of function h3kRing. Must be UInt16: While processing AAA,BBB,CCC,DDD,h3kRing(DDD,1),EEE,FFF,GGG. (ILLEGAL_TYPE_OF_ARGUMENT), Stack trace (when copying this message, always include the lines below):

0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xa4dde1a in /usr/bin/clickhouse
1. DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&, int&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) @ 0x10dd9f61 in /usr/bin/clickhouse
2. ? @ 0x10de521c in /usr/bin/clickhouse
3. DB::IFunction::getReturnTypeImpl(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&) const @ 0xc9bd641 in /usr/bin/clickhouse
4. DB::IFunctionOverloadResolver::getReturnType(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&) const @ 0x139ce039 in /usr/bin/clickhouse
5. DB::IFunctionOverloadResolver::build(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> > const&) const @ 0x139cecd6 in /usr/bin/clickhouse
6. DB::ActionsDAG::addFunction(std::__1::shared_ptr<DB::IFunctionOverloadResolver> const&, std::__1::vector<DB::ActionsDAG::Node const*, std::__1::allocator<DB::ActionsDAG::Node const*> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) @ 0x1403a385 in /usr/bin/clickhouse
7. DB::ScopeStack::addFunction(std::__1::shared_ptr<DB::IFunctionOverloadResolver> const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) @ 0x141e4ec5 in /usr/bin/clickhouse
8. DB::ActionsMatcher::visit(DB::ASTFunction const&, std::__1::shared_ptr<DB::IAST> const&, DB::ActionsMatcher::Data&) @ 0x141eaa98 in /usr/bin/clickhouse
9. DB::ActionsMatcher::visit(DB::ASTExpressionList&, std::__1::shared_ptr<DB::IAST> const&, DB::ActionsMatcher::Data&) @ 0x141ed778 in /usr/bin/clickhouse
10. DB::InDepthNodeVisitor<DB::ActionsMatcher, true, false, std::__1::shared_ptr<DB::IAST> const>::visit(std::__1::shared_ptr<DB::IAST> const&) @ 0x141bb337 in /usr/bin/clickhouse
11. DB::ExpressionAnalyzer::getRootActions(std::__1::shared_ptr<DB::IAST> const&, bool, std::__1::shared_ptr<DB::ActionsDAG>&, bool) @ 0x141bb138 in /usr/bin/clickhouse
12. DB::SelectQueryExpressionAnalyzer::appendSelect(DB::ExpressionActionsChain&, bool) @ 0x141c7109 in /usr/bin/clickhouse
13. DB::ExpressionAnalysisResult::ExpressionAnalysisResult(DB::SelectQueryExpressionAnalyzer&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, bool, bool, bool, std::__1::shared_ptr<DB::FilterDAGInfo> const&, DB::Block const&) @ 0x141cbd2d in /usr/bin/clickhouse
14. DB::InterpreterSelectQuery::getSampleBlockImpl() @ 0x144d648d in /usr/bin/clickhouse
15. ? @ 0x144ce2a3 in /usr/bin/clickhouse
16. DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, std::__1::optional<DB::Pipe>, std::__1::shared_ptr<DB::IStorage> const&, DB::SelectQueryOptions const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, std::__1::unordered_map<DB::PreparedSetKey, std::__1::shared_ptr<DB::Set>, DB::PreparedSetKey::Hash, std::__1::equal_to<DB::PreparedSetKey>, std::__1::allocator<std::__1::pair<DB::PreparedSetKey const, std::__1::shared_ptr<DB::Set> > > >) @ 0x144c8caa in /usr/bin/clickhouse
17. DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, DB::SelectQueryOptions const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) @ 0x144c7334 in /usr/bin/clickhouse
18. DB::InterpreterSelectWithUnionQuery::buildCurrentChildInterpreter(std::__1::shared_ptr<DB::IAST> const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) @ 0x1468e4ca in /usr/bin/clickhouse
19. DB::InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, DB::SelectQueryOptions const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) @ 0x1468c910 in /usr/bin/clickhouse
20. DB::InterpreterFactory::get(std::__1::shared_ptr<DB::IAST>&, std::__1::shared_ptr<DB::Context>, DB::SelectQueryOptions const&) @ 0x1446da50 in /usr/bin/clickhouse
21. ? @ 0x148d096c in /usr/bin/clickhouse
22. DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, std::__1::shared_ptr<DB::Context>, std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>, std::__1::optional<DB::FormatSettings> const&) @ 0x148d3fca in /usr/bin/clickhouse
23. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::__1::optional<DB::CurrentThread::QueryScope>&) @ 0x151cdae7 in /usr/bin/clickhouse
24. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x151d2292 in /usr/bin/clickhouse
25. DB::HTTPServerConnection::run() @ 0x1545979b in /usr/bin/clickhouse
26. Poco::Net::TCPServerConnection::start() @ 0x164b264f in /usr/bin/clickhouse
27. Poco::Net::TCPServerDispatcher::run() @ 0x164b4aa1 in /usr/bin/clickhouse
28. Poco::PooledThread::run() @ 0x16671e49 in /usr/bin/clickhouse
29. Poco::ThreadImpl::runnableEntry(void*) @ 0x1666f1a0 in /usr/bin/clickhouse
30. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
31. __clone @ 0xfeb0d in /usr/lib64/libc-2.17.so
 (version 22.3.2.1)
```
I can bypass the error using:
```sql
select AAA,BBB,CCC,DDD,h3kRing(DDD,toUInt16(1)),EEE,FFF,GGG from core.dis_last;
```

**How to reproduce**
ClickHouse 22.3.2.1 Revision 54455.
core.dis_last DDL:
```sql
create table core.dis_last (
AAA DateTime,
BBB UInt16,
CCC String,
DDD UInt64,
EEE String,
FFF String,
GGG String
)
```

**Expected behavior**
No need to add toUInt64() on function `h3kRing(h3index, k)` parameter k.

throw Exception(ErrorCodes::PARAMETER_OUT_OF_BOUND, "Too large 'k' argument for {} function, maximum {}", getName(), max_k);
            
            if (k < 0)
                throw Exception(ErrorCodes::PARAMETER_OUT_OF_BOUND, "Argument 'k' for {} function must be non negative", getName());
            const auto vec_size = maxGridDiskSize(k);
            std::vector<H3Index> hindex_vec;
            hindex_vec.resize(vec_size);
            gridDisk(origin_hindex, k, hindex_vec.data());
            dst_data.reserve(dst_data.size() + vec_size);
            for (auto hindex : hindex_vec)
            {
                if (hindex != 0)
                {
                    ++current_offset;
                    dst_data.insert(hindex);
                }
            }
            dst_offsets[row] = current_offset;
        }
        return dst;
    }
};
}
void registerFunctionH3KRing(FunctionFactory & factory)
{
    factory.registerFunction<FunctionH3KRing>();
}
}
#endif