using System; using static System.Console; using System.Linq; using System.Collections.Generic; using System.Security.Cryptography; using Microsoft.VisualBasic; class Program { static int NN => int.Parse(ReadLine()); static long[] NList => ReadLine().Split().Select(long.Parse).ToArray(); static long[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); } static void Solve() { var q = NN; var ans = new int[q]; for (var u = 0; u < q; ++u) { var c = NList; var (n, k) = (c[0], c[1]); var mul = 1L; --ans[u]; while (n > 0) { ++ans[u]; n -= mul; mul *= k; } } WriteLine(string.Join("\n", ans)); } }