We define a recursive function f(n) which takes a positive integer n as input and does the following:

*f(n):*

*if n < 10 *

* return n*

*else return f( sum_of_digits(n) )*

where sum_of_digits(n) returns the sum of the digits of the positive integer n.

Given two positive integers **A** and **B, **the task is to find the value of **f**(**A ^{B}**).

**Input: **

The first line of input contains a single integer **T** denoting the number of test cases. Then **T** test cases follow. Each test case consists of exactly one line. This line consists of two space separated positive integers **A** and **B**.

**Output:**

Corresponding to each test case, in a new line, print the value of f(**A ^{B}**).

**Constraints:**

1 ≤ **T** ≤ 200

1 ≤ **A**, **B** ≤ 10^{9 }

**Example:**

**Input**

3

6 6

7 3

1000 1

**Output**

9

1

1

**Explanation**:

f(6^{6}) = f(46656) = f(27) = f(9) = 9

f(7^{3}) = f(343) = f(10) = f(1) = 1

f(1000) = f(1) = 1

If you have purchased any course from GeeksforGeeks then please ask your doubt on course discussion forum. You will get quick replies from GFG Moderators there.

VISHESHA SADU | 27 |

ghanshyam648 | 25 |

Biswajit3 | 21 |

karthik_kasaragadda | 20 |

tanya_sharma | 18 |

KshatriyaYash | 1066 |

nikhil_sojan | 978 |

lonecoder | 935 |

mazumderrohit8 | 864 |

SumitSingh27 | 832 |

blackshadows | 5327 |

Ibrahim Nash | 5215 |

akhayrutdinov | 5111 |

mb1973 | 4468 |

Quandray | 4444 |

Login to report an issue on this page.