/**
 * This function takes two integers n and m as input and returns two lists. The first list contains the numbers from 1 to n,
 * while the second list contains the numbers from n+1 to n+m, where n+m is the sum of n and m.
 *
 * @param n An integer specifying the range of the first list.
 * @param m An integer specifying the range of the second list.
 * @return A Pair containing two lists. The first list contains numbers from 1 to n, and the second list contains numbers from
 * n+1 to n+m.
 */
fun createShiftedLists(n: Int, m: Int): Pair<List<Int>, List<Int>> {

    // Creating the first list using a list comprehension and the range function
    val firstList = (1..n).toList()

    // Using the left shift (shl) operator to perform multiplication by 2^m
    val secondList = (1..n).map { it shl m }

    return Pair(firstList, secondList)
}

// Example usage
/**
 * This function takes two integers n and m as input and returns two lists. The first list contains the numbers from 1 to n,
 * while the second list contains the numbers from n+1 to n+m, where n+m is the sum of n and m.
 *
 * @param n An integer specifying the range of the first list.
 * @param m An integer specifying the range of the second list.
 * @return A Pair containing two lists. The first list contains numbers from 1 to n, and the second list contains numbers from
 * n+1 to n+m.
 */
fun createShiftedLists(n: Int, m: Int): Pair<List<Int>, List<Int>> {
/**
 * This function takes two integers n and m as input and returns two lists. The first list contains the numbers from 1 to n,
 * while the second list contains the numbers from n+1 to n+m, where n+m is the sum of n and m.
 *
 * @param n An integer specifying the range of the first list.
 * @param m An integer specifying the range of the second list.
 * @return A Pair containing two lists. The first list contains numbers from 1 to n, and the second list contains numbers from
 * n+1 to n+m.
 */
fun createShiftedLists(n: Int, m: Int): Pair<List<Int>, List<Int>> {

    // Creating the first list using a list comprehension and the range function
    val firstList = (1..n).toList()

    // Using the left shift (shl) operator to perform multiplication by 2^m
    val secondList = (1..n).map { it shl m }

    return Pair(firstList, secondList)
}

// Example usage