*********************************************************************************************************
Refer: https://onlinegdb.com/HyBHnKxYV
Refer: https://onlinegdb.com/SydgaKlKN
*********************************************************************************************************