#include			  <algorithm>
#include			   <iostream>
#include				<cstring>
#include				<stdio.h>
#include				 <string>
#include			     <vector>
#include				 <time.h>
#include				  <queue>
#include				  <cmath>
#include				    <map>
#include				    <set>
using	namespace	    	 std;
typedef	long long    		  vt;
typedef unsigned long long   vt2;
typedef	pair<vt,vt>		     PVV;
typedef	pair<char,vt>	     PCV;
typedef	pair<string, vt>     PSV;
typedef	map<vt,vt>			 MVV;
typedef map<char,vt>	     MCV;
typedef map<string,vt>	     MSV;
#define	T true
#define F false
#define fi(x,y) for(int i=x;i<y;i++)
#define fj(x,y) for(int j=x;j<y;j++)
#define fk(x,y) for(int k=x;k<y;k++)
#define MAXP 2000010
#define LL __int64
const int MAXN = 1e6 + 99, INF = 0x3f3f3f3f;
vt HASHprime = 13331;//7,97,997,9973,99991,999983,131,13331
////////////////////////////////////////////////////////////
int a[MAXN], n;
int main()
{
	vt2 n, k;
	int t;
	cin >> t;
	while (t--)
	{
		cin >> n >> k;
		vt ans = 0;
		if (k == 1)
		{
			cout << n << endl;
			continue;
		}
		while (n)
		{
			++ans;
			if (n % k == 0)
				n /= k;
			else
				--n;
		}
		cout << ans << endl;
	}
	return 0;
}
/*

							. .........
							..,OOOO]]..... .. .
						  ...O@O/OOO@@@@].......
						  ...@@^/\\]o][@@@@\.....
						   ..@@O//oooooo\/OOOO`......
						   ..@@@//ooooooo`oo/OOO\.....
						   ..=@@^ooooooooooo/o/\OOO]....
							..@@O\oooooooooooooo[/OOO\....
							..=@@ooooooooooooooooo\\oOOO`...
							...O@Ooooooooooooooooooo/o[OOO\.....
							...=@@^]ooooooooooooooooo/o\/\OO^... . .
							 ...\@O=ooooooooooooooooooooooooOO\.....
							 . ..@@Ooooooooooooooooooooooo/o/\OOO`....
							   ..=@@O\/\ooooooooooooooooooooo]/\OOO\.....
				..  ......... ....\@@/]/ooooooooooooooooooooooo///\OO\......
		  .... .....,]]OO]O\`......O@@/oooooooooooooooooooooooooooo^OOO\......
		  ....,@@@@@@@@OO/[O@@@]....O@O/o=ooooooooooooooooooooooooooo\OOO`......
		  ...=@@@Oooo\/\/OOO]/O@@@\`.@@\oooooooooooooooooooooooooooooo/oOOO^....
		  ...=@@/\oo/@@@@@O@@@@O][@@@@@@\\ooooooooooooooooooooooooooooooooOOO`... ..
		  ...@@Oooooo=@@OOOOOOO@@@@OOO@@@\\/oooooooooooooooooooooooooo\o\oo\O@O].... .  ..
		  ..,@@ooooo//@@OOOOOOOOOOO@@@@@@@O`oooooooooooooooooooooooooooooo/ooO@@@@@]...... ...
		  ..=@@/ooooooO@@OOOOOOOOOOO@@@@@@@\ooooooooooooooooooooooooooooooooooO@@@@@@@@\`..... .
		 ...=@@ooooooo/@@OOOOOOOO@@@@@@@@@@@O/\/oooooooooooooooooooooooooooooo//@@@@@@@@@@@\`.......   .
		  ..@@O\ooooooo\@@OOOOO@@@@@@@OOOOOO@@OO/\/ooooooooooooooooooooooooooo/o=@@@@@@@@@@@@@@]....   ..
		  ..@@\ooooooo\o=@@OO@@@@@@OOOOOOOOOOO@@@O\\oooooooooooooooooooooooooo/oooO@@@@@@@@@@@@@@@]......
		  .,@@^ooooooooo\O@@@@@OOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooooooooooooooooo/O@@@@@@@@@@@@@@@@@`...   ..
		 ..=@@ooooooo/o/@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@O/\/ooooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@`......
		  .=@@o\oo/o//@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/\oooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oooo^/O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\\//o\oooooooooooooooOOoOoO@@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oo\=O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooOoooOOooOO@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@/\oO@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/ooooooOoOOOOOoOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^...
		  .=@@\O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\ooooOoOoOO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@OoO@@@@@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .,@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .=@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	   ...=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	  .../O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@`...
	....=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@^..
	.../OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOO@@@@@@@@@@@@@@^.
	..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOoOOOOOOO@@@@@@@@@@@`..
	..OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOO@@OoOOOOOOOOoooO@@@@@@@@..
  ...O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOO@@OOoOoOOOOOooooO@@@@@@O... .
  ..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOOOO@@OooOOOOOOoOoOOOoO@@@@@\.. .
  ..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOO@@@OOooOOoOOooo@@@oOOOOOOOoOoOOoOoO@@@@@\...
  .,@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOoOOOooOOoOoOO@@OoOOOOOOoOoOOOOOOO@@@@@\ .
.../@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOO@@@OooOOOOooooooOoOO@@@oOOOOOOOoooOOOOooO@@@@@^...
...O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOO@@@OooOoOOOOooooooOOOo@@@OOoOOOOOOOOOOOOOOoO@@@@@`..
  =O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOO@@@OooOOoOOOOOOOOOoOOooOO@@OOoOOooOOooOooOOOoOO@@@@@`.kgj
..=@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@oOoOOOOOoooOOOOOooOOOO@@Oooooooo/\/\//oooooO@@@@@@...
..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OoOoooOoooOOooOOOOOOo@@@/oooo/oooooooooooo/@@@@@@@..
..O@OOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@ooO@@@OOoOOOOoooooooOOOOoo@@@\/oooooooooooooooo\O@@@@@@\.
..@@OOOOOOOO@@O@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOooo=@@@OoOOOOoooooooOOo\//O@O@@@\/\\oooooooooo\oO@@@@@@@^..
.=@@OOOOOOO@@@OO@@@@@@OOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@Oooo/@@@@@OoOoooOoooooooo\O@@@OOOO@@@\\ooooooooooo=/@@@@@@@O..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOOOOO@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@OoooO@@@@O@@@@@@Oooooooo\oO@@@O/ooOOOO@@O/ooooooooo=ooO@@@@@@@^..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOO@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOO@@OoOOO@@@OOOOOOO@@@@@@@@@O]O@@@@ooo/..,OOO@@@\\ooooooooooO@@@@@@@O...
.=OOOOOOOO@@@@OOO@@@@@@OOOOOOOOOO@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOOO@@@@OOOOOOOOOOOOOOO@@@@@@@oooooo`...OOO@@@/ooooooooooO@@@@@@@O^..
..@@OOOOOOO@@@@@O@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOO@@OOOOO@@@OOOOOOOOOOOOOoooooooooooooooooo\../OOO@@\^^ooooooooO@@@@@@@@^..
..@@@OOOOOOO@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOO@@OoooO@@@OOOOOOOOOOOOooooooooooooooooooooOOOOOOO@@@=oooooooo\O@@@@@@@@\..
..O@@OOOOO@@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOO@@OOooO@@@OOOOOOOOOOOoooooooooooooooooooooooOOOOOO@@@^oooooooo=@@@@@@@@@@....
..O@@OOO@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOO@@@OOOOoO@@@OOOOOOOOOoooooooooooooooooooooooooOOOOOOO@@oooooooo^O@@@@@@@@@@^...
.,@@@OOOOOOOOOOOO@@@@@@@OOOO@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOO@@OoOOOOo@@@OOOOOOOOoooooooooooooooooooooooooooOOOOOO@@@\/ooooo/\O@@@@@@@@@@@\....
.@@@OO@OOOOOOOOOOOO@@@@@@O@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOO@@OooOOoOo@@@OOOOOOoooooooooooooooooooooooooooooOOOOOO@@O\ooooo\//@@@@@@@@@@@@@@`....
=@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOO@@OooOOOOOO@@@OOOOOOoooooooooooooooooooooooooooooOOOOO@@@\\/ooooo^O@@@@@@@@@@@@@@@@`......
=@@@@OOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOO@@@OOOOoOoooO@@@OOOOOOOooooooooooooooooooooooooooOOOOOOO@@//oooooo\O@@@@@@@@@@@@@@OOOOO]....
=@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOO@@@oooOOooooooO@@OOOOOOOoooooooooooooooooooooooooOOOOOOO@@O\oooooo/O@@@@@@@@@@@@@@@@@@OOO@^....
,@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOO@@@oOooooooooooo@@@OOOOOOOOooooooooooooooooooooOOOOOOOO@@@/\\\ooooo/@@@@@@@@@@@@@@@@@@@@@OO@O...
.=@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@ooOOooooooooooo@@@OOOOOOOOOOooooooooooooooOOOOOOOOO@@@@/o/oooooooO@@@@@@@@@@@@@@@@@@@@@@@OOO`.......
..@@@@@OOOO@@@@@@@OOOO@@@OO@@@@@@@@@@@@@@@@OOOOOOOOO@@OoooOOoooooooooooo@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@/\\o\ooooo/@@@@@@@@@@@@@@@@@@@@@@@@@@@OO\........ ..  .
..=@@@@@@@@@@@@@@OOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOO@@@ooOoOOOOoooooooooo/O@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@`/,o/ooooo\O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O]]............... .
  .\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@oOoOoooOoOooooooooo\o/O@@@@@@OOOOOOOOOOOO@@@@@@@@@O/\\\o/oooo//\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@@@]]]`........    ..
  ..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOO@@@ooooOOOoOOOooooooooo\/\/\o][O@@@@@@@@@@@@@@@@@O/\\\/ooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOO@@@@@@]]............
  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOO@@OoOOOOOOOoooooooooooooooooooo\ooo]/o/[[o\\=oo\/o]ooooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo\\/O@OOOOOOOOOOOOOOOOOOOOO@@@@]].....
  ...=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@OOOooOOoooooooooooooooooooooooo\ooooooooooooooooooooooooo\/@@@@@@@@@@@@@@@@O[]@@/[\OO@@@@@@@@@@OOOOOO@O*..,[[[\OOOOOOOOOOOOOOOOOO@@@@
	..=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OoOooooooooooooooooooooooooooooooooooooooooooooooo\@@@@@@@@@@@@@@/\/@@@[.]@@@@OOOO`...**[[[[[[/[*****..****,oooOOOOOOO/*..*\OOO
	...,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Ooooooooooooooooooooooooooooooooooooooooooo/\O@@@@@@@@@@@@@O@@@/`.]@@@OOOOOOOOOOO\]*****,[*.*..*...*******oooOOOOOO\*.../OOO
	 ....\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\\ooooooooooooooooooooooooooooooooooo/]O@@@@@@@@@@@@@@@/`..]@@@OOOOOOOOOOOOOOOOO/*****..*********]]/o/oooOOOOOOOOOOOOOOO@
	  ....,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@OO\]ooooooooooooooooooooo/o[o/O@@@@@@@@@@@@@@@[..,]@@@OOOOOOOOOOOOOOOOOOOOO/*********]]oooooooOOOOOOOOOOOOOOOOO@@@@@
		  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@O/\]o[\/\ooo[\ooOO@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOooooooo/ooooOOOOOOOOOOOOOOOOOOOOO@@@@@@@`..
		  .....[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[......
			  .....,[\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O[[O@@@@OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@OOOOOO/[[oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/.......
					........[[[O@@@@@@@@@@@@@@@@@@@@@OO\/\ooo/o\@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@OOOOOOOO[**.*.......,[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`......  .
						 .  ..............,[\@@@@@@@OOO]/\ooooo/oO@\.................,]OO@OOOOOOOOOO/*......**.............**[[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[\@@@@\]`.........
									  ..........,....,@@@@@@OOOOOOO@@O@\............,@[\@@@@OOOOOOOOO]`**........................*[\OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`...........[[O@O\]...
												.....@@OOOOOOOOO@@OO@@OO@\..     ...[[\@@@@O/[OO@@@OOOOOOOOO\]`*.........*.*.........,OOOOOOOOOOOOOOO@@@@@@@@@/`......       ..........,[
												.....@@OOOOOOO@@OOOOOO@OO@\....    ........,[\@@@]].[\@@@@@OOOOOOOOO\]]`*..........*,/OOOOOOOOOOO@@@@@@@@@[.....                        .
													.=@@OOOOOO@OOOOOOOO@OO@^..        ....  ......[\@@@\]]*[\@@@@@@@OOOOOOOOOO\]/OOOOOOOOOOOO@@@@@@@@/`........
												   ....,\@@@OO@OOOOOOOO@@@/...              .............,[@@@@O]/[\@@@@@@@@@OOOOOOOOOOOO@@@@@@@@[.......
													  ......,\@@@@@@@@O\@\..                             ........,[\@@@O]/[[O@@@@@@@O@@@@@@@@`......

*/


#include			  <algorithm>
#include			   <iostream>
#include				<cstring>
#include				<stdio.h>
#include				 <string>
#include			     <vector>
#include				 <time.h>
#include				  <queue>
#include				  <cmath>
#include				    <map>
#include				    <set>
using	namespace	    	 std;
typedef	long long    		  vt;
typedef unsigned long long   vt2;
typedef	pair<vt,vt>		     PVV;
typedef	pair<char,vt>	     PCV;
typedef	pair<string, vt>     PSV;
typedef	map<vt,vt>			 MVV;
typedef map<char,vt>	     MCV;
typedef map<string,vt>	     MSV;
#define	T true
#define F false
#define fi(x,y) for(int i=x;i<y;i++)
#define fj(x,y) for(int j=x;j<y;j++)
#define fk(x,y) for(int k=x;k<y;k++)
#define MAXP 2000010
#define LL __int64
const int MAXN = 1e6 + 99, INF = 0x3f3f3f3f;
vt HASHprime = 13331;//7,97,997,9973,99991,999983,131,13331
////////////////////////////////////////////////////////////
int a[MAXN], n;
int main()
{
	vt2 n, k;
	int t;
	cin >> t;
	while (t--)
	{
		cin >> n >> k;
		vt ans = 0;
		while (n)
		{
			++ans;
			if (n % k == 0)
				n /= k;
			else
				--n;
		}
		cout << ans << endl;
	}
	return 0;
}
/*

							. .........
							..,OOOO]]..... .. .
						  ...O@O/OOO@@@@].......
						  ...@@^/\\]o][@@@@\.....
						   ..@@O//oooooo\/OOOO`......
						   ..@@@//ooooooo`oo/OOO\.....
						   ..=@@^ooooooooooo/o/\OOO]....
							..@@O\oooooooooooooo[/OOO\....
							..=@@ooooooooooooooooo\\oOOO`...
							...O@Ooooooooooooooooooo/o[OOO\.....
							...=@@^]ooooooooooooooooo/o\/\OO^... . .
							 ...\@O=ooooooooooooooooooooooooOO\.....
							 . ..@@Ooooooooooooooooooooooo/o/\OOO`....
							   ..=@@O\/\ooooooooooooooooooooo]/\OOO\.....
				..  ......... ....\@@/]/ooooooooooooooooooooooo///\OO\......
		  .... .....,]]OO]O\`......O@@/oooooooooooooooooooooooooooo^OOO\......
		  ....,@@@@@@@@OO/[O@@@]....O@O/o=ooooooooooooooooooooooooooo\OOO`......
		  ...=@@@Oooo\/\/OOO]/O@@@\`.@@\oooooooooooooooooooooooooooooo/oOOO^....
		  ...=@@/\oo/@@@@@O@@@@O][@@@@@@\\ooooooooooooooooooooooooooooooooOOO`... ..
		  ...@@Oooooo=@@OOOOOOO@@@@OOO@@@\\/oooooooooooooooooooooooooo\o\oo\O@O].... .  ..
		  ..,@@ooooo//@@OOOOOOOOOOO@@@@@@@O`oooooooooooooooooooooooooooooo/ooO@@@@@]...... ...
		  ..=@@/ooooooO@@OOOOOOOOOOO@@@@@@@\ooooooooooooooooooooooooooooooooooO@@@@@@@@\`..... .
		 ...=@@ooooooo/@@OOOOOOOO@@@@@@@@@@@O/\/oooooooooooooooooooooooooooooo//@@@@@@@@@@@\`.......   .
		  ..@@O\ooooooo\@@OOOOO@@@@@@@OOOOOO@@OO/\/ooooooooooooooooooooooooooo/o=@@@@@@@@@@@@@@]....   ..
		  ..@@\ooooooo\o=@@OO@@@@@@OOOOOOOOOOO@@@O\\oooooooooooooooooooooooooo/oooO@@@@@@@@@@@@@@@]......
		  .,@@^ooooooooo\O@@@@@OOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooooooooooooooooo/O@@@@@@@@@@@@@@@@@`...   ..
		 ..=@@ooooooo/o/@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@O/\/ooooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@`......
		  .=@@o\oo/o//@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/\oooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oooo^/O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\\//o\oooooooooooooooOOoOoO@@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oo\=O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooOoooOOooOO@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@/\oO@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/ooooooOoOOOOOoOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^...
		  .=@@\O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\ooooOoOoOO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@OoO@@@@@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .,@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .=@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	   ...=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	  .../O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@`...
	....=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@^..
	.../OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOO@@@@@@@@@@@@@@^.
	..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOoOOOOOOO@@@@@@@@@@@`..
	..OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOO@@OoOOOOOOOOoooO@@@@@@@@..
  ...O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOO@@OOoOoOOOOOooooO@@@@@@O... .
  ..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOOOO@@OooOOOOOOoOoOOOoO@@@@@\.. .
  ..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOO@@@OOooOOoOOooo@@@oOOOOOOOoOoOOoOoO@@@@@\...
  .,@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOoOOOooOOoOoOO@@OoOOOOOOoOoOOOOOOO@@@@@\ .
.../@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOO@@@OooOOOOooooooOoOO@@@oOOOOOOOoooOOOOooO@@@@@^...
...O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOO@@@OooOoOOOOooooooOOOo@@@OOoOOOOOOOOOOOOOOoO@@@@@`..
  =O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOO@@@OooOOoOOOOOOOOOoOOooOO@@OOoOOooOOooOooOOOoOO@@@@@`.kgj
..=@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@oOoOOOOOoooOOOOOooOOOO@@Oooooooo/\/\//oooooO@@@@@@...
..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OoOoooOoooOOooOOOOOOo@@@/oooo/oooooooooooo/@@@@@@@..
..O@OOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@ooO@@@OOoOOOOoooooooOOOOoo@@@\/oooooooooooooooo\O@@@@@@\.
..@@OOOOOOOO@@O@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOooo=@@@OoOOOOoooooooOOo\//O@O@@@\/\\oooooooooo\oO@@@@@@@^..
.=@@OOOOOOO@@@OO@@@@@@OOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@Oooo/@@@@@OoOoooOoooooooo\O@@@OOOO@@@\\ooooooooooo=/@@@@@@@O..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOOOOO@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@OoooO@@@@O@@@@@@Oooooooo\oO@@@O/ooOOOO@@O/ooooooooo=ooO@@@@@@@^..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOO@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOO@@OoOOO@@@OOOOOOO@@@@@@@@@O]O@@@@ooo/..,OOO@@@\\ooooooooooO@@@@@@@O...
.=OOOOOOOO@@@@OOO@@@@@@OOOOOOOOOO@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOOO@@@@OOOOOOOOOOOOOOO@@@@@@@oooooo`...OOO@@@/ooooooooooO@@@@@@@O^..
..@@OOOOOOO@@@@@O@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOO@@OOOOO@@@OOOOOOOOOOOOOoooooooooooooooooo\../OOO@@\^^ooooooooO@@@@@@@@^..
..@@@OOOOOOO@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOO@@OoooO@@@OOOOOOOOOOOOooooooooooooooooooooOOOOOOO@@@=oooooooo\O@@@@@@@@\..
..O@@OOOOO@@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOO@@OOooO@@@OOOOOOOOOOOoooooooooooooooooooooooOOOOOO@@@^oooooooo=@@@@@@@@@@....
..O@@OOO@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOO@@@OOOOoO@@@OOOOOOOOOoooooooooooooooooooooooooOOOOOOO@@oooooooo^O@@@@@@@@@@^...
.,@@@OOOOOOOOOOOO@@@@@@@OOOO@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOO@@OoOOOOo@@@OOOOOOOOoooooooooooooooooooooooooooOOOOOO@@@\/ooooo/\O@@@@@@@@@@@\....
.@@@OO@OOOOOOOOOOOO@@@@@@O@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOO@@OooOOoOo@@@OOOOOOoooooooooooooooooooooooooooooOOOOOO@@O\ooooo\//@@@@@@@@@@@@@@`....
=@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOO@@OooOOOOOO@@@OOOOOOoooooooooooooooooooooooooooooOOOOO@@@\\/ooooo^O@@@@@@@@@@@@@@@@`......
=@@@@OOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOO@@@OOOOoOoooO@@@OOOOOOOooooooooooooooooooooooooooOOOOOOO@@//oooooo\O@@@@@@@@@@@@@@OOOOO]....
=@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOO@@@oooOOooooooO@@OOOOOOOoooooooooooooooooooooooooOOOOOOO@@O\oooooo/O@@@@@@@@@@@@@@@@@@OOO@^....
,@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOO@@@oOooooooooooo@@@OOOOOOOOooooooooooooooooooooOOOOOOOO@@@/\\\ooooo/@@@@@@@@@@@@@@@@@@@@@OO@O...
.=@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@ooOOooooooooooo@@@OOOOOOOOOOooooooooooooooOOOOOOOOO@@@@/o/oooooooO@@@@@@@@@@@@@@@@@@@@@@@OOO`.......
..@@@@@OOOO@@@@@@@OOOO@@@OO@@@@@@@@@@@@@@@@OOOOOOOOO@@OoooOOoooooooooooo@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@/\\o\ooooo/@@@@@@@@@@@@@@@@@@@@@@@@@@@OO\........ ..  .
..=@@@@@@@@@@@@@@OOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOO@@@ooOoOOOOoooooooooo/O@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@`/,o/ooooo\O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O]]............... .
  .\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@oOoOoooOoOooooooooo\o/O@@@@@@OOOOOOOOOOOO@@@@@@@@@O/\\\o/oooo//\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@@@]]]`........    ..
  ..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOO@@@ooooOOOoOOOooooooooo\/\/\o][O@@@@@@@@@@@@@@@@@O/\\\/ooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOO@@@@@@]]............
  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOO@@OoOOOOOOOoooooooooooooooooooo\ooo]/o/[[o\\=oo\/o]ooooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo\\/O@OOOOOOOOOOOOOOOOOOOOO@@@@]].....
  ...=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@OOOooOOoooooooooooooooooooooooo\ooooooooooooooooooooooooo\/@@@@@@@@@@@@@@@@O[]@@/[\OO@@@@@@@@@@OOOOOO@O*..,[[[\OOOOOOOOOOOOOOOOOO@@@@
	..=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OoOooooooooooooooooooooooooooooooooooooooooooooooo\@@@@@@@@@@@@@@/\/@@@[.]@@@@OOOO`...**[[[[[[/[*****..****,oooOOOOOOO/*..*\OOO
	...,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Ooooooooooooooooooooooooooooooooooooooooooo/\O@@@@@@@@@@@@@O@@@/`.]@@@OOOOOOOOOOO\]*****,[*.*..*...*******oooOOOOOO\*.../OOO
	 ....\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\\ooooooooooooooooooooooooooooooooooo/]O@@@@@@@@@@@@@@@/`..]@@@OOOOOOOOOOOOOOOOO/*****..*********]]/o/oooOOOOOOOOOOOOOOO@
	  ....,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@OO\]ooooooooooooooooooooo/o[o/O@@@@@@@@@@@@@@@[..,]@@@OOOOOOOOOOOOOOOOOOOOO/*********]]oooooooOOOOOOOOOOOOOOOOO@@@@@
		  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@O/\]o[\/\ooo[\ooOO@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOooooooo/ooooOOOOOOOOOOOOOOOOOOOOO@@@@@@@`..
		  .....[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[......
			  .....,[\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O[[O@@@@OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@OOOOOO/[[oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/.......
					........[[[O@@@@@@@@@@@@@@@@@@@@@OO\/\ooo/o\@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@OOOOOOOO[**.*.......,[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`......  .
						 .  ..............,[\@@@@@@@OOO]/\ooooo/oO@\.................,]OO@OOOOOOOOOO/*......**.............**[[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[\@@@@\]`.........
									  ..........,....,@@@@@@OOOOOOO@@O@\............,@[\@@@@OOOOOOOOO]`**........................*[\OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`...........[[O@O\]...
												.....@@OOOOOOOOO@@OO@@OO@\..     ...[[\@@@@O/[OO@@@OOOOOOOOO\]`*.........*.*.........,OOOOOOOOOOOOOOO@@@@@@@@@/`......       ..........,[
												.....@@OOOOOOO@@OOOOOO@OO@\....    ........,[\@@@]].[\@@@@@OOOOOOOOO\]]`*..........*,/OOOOOOOOOOO@@@@@@@@@[.....                        .
													.=@@OOOOOO@OOOOOOOO@OO@^..        ....  ......[\@@@\]]*[\@@@@@@@OOOOOOOOOO\]/OOOOOOOOOOOO@@@@@@@@/`........
												   ....,\@@@OO@OOOOOOOO@@@/...              .............,[@@@@O]/[\@@@@@@@@@OOOOOOOOOOOO@@@@@@@@[.......
													  ......,\@@@@@@@@O\@\..                             ........,[\@@@O]/[[O@@@@@@@O@@@@@@@@`......

*/


#include			  <algorithm>
#include			   <iostream>
#include				<cstring>
#include				<stdio.h>
#include				 <string>
#include			     <vector>
#include				 <time.h>
#include				  <queue>
#include				  <cmath>
#include				    <map>
#include				    <set>
using	namespace	    	 std;
typedef	long long    		  vt;
typedef unsigned long long   vt2;
typedef	pair<vt,vt>		     PVV;
typedef	pair<char,vt>	     PCV;
typedef	pair<string, vt>     PSV;
typedef	map<vt,vt>			 MVV;
typedef map<char,vt>	     MCV;
typedef map<string,vt>	     MSV;
#define	T true
#define F false
#define fi(x,y) for(int i=x;i<y;i++)
#define fj(x,y) for(int j=x;j<y;j++)
#define fk(x,y) for(int k=x;k<y;k++)
#define MAXP 2000010
#define LL __int64
const int MAXN = 1e6 + 99, INF = 0x3f3f3f3f;
vt HASHprime = 13331;//7,97,997,9973,99991,999983,131,13331
////////////////////////////////////////////////////////////
int a[MAXN], n;
int main()
{
	vt2 n, k;
	int t;
	cin >> t;
	while (t--)
	{
		cin >> n >> k;
		vt ans = 0;
		if (k > n)
		{
			cout << n << endl;
			continue;
		}
		while (n)
		{
			++ans;
			if (n % k == 0)
				n /= k;
			else
				--n;
		}
		cout << ans << endl;
	}
	return 0;
}
/*

							. .........
							..,OOOO]]..... .. .
						  ...O@O/OOO@@@@].......
						  ...@@^/\\]o][@@@@\.....
						   ..@@O//oooooo\/OOOO`......
						   ..@@@//ooooooo`oo/OOO\.....
						   ..=@@^ooooooooooo/o/\OOO]....
							..@@O\oooooooooooooo[/OOO\....
							..=@@ooooooooooooooooo\\oOOO`...
							...O@Ooooooooooooooooooo/o[OOO\.....
							...=@@^]ooooooooooooooooo/o\/\OO^... . .
							 ...\@O=ooooooooooooooooooooooooOO\.....
							 . ..@@Ooooooooooooooooooooooo/o/\OOO`....
							   ..=@@O\/\ooooooooooooooooooooo]/\OOO\.....
				..  ......... ....\@@/]/ooooooooooooooooooooooo///\OO\......
		  .... .....,]]OO]O\`......O@@/oooooooooooooooooooooooooooo^OOO\......
		  ....,@@@@@@@@OO/[O@@@]....O@O/o=ooooooooooooooooooooooooooo\OOO`......
		  ...=@@@Oooo\/\/OOO]/O@@@\`.@@\oooooooooooooooooooooooooooooo/oOOO^....
		  ...=@@/\oo/@@@@@O@@@@O][@@@@@@\\ooooooooooooooooooooooooooooooooOOO`... ..
		  ...@@Oooooo=@@OOOOOOO@@@@OOO@@@\\/oooooooooooooooooooooooooo\o\oo\O@O].... .  ..
		  ..,@@ooooo//@@OOOOOOOOOOO@@@@@@@O`oooooooooooooooooooooooooooooo/ooO@@@@@]...... ...
		  ..=@@/ooooooO@@OOOOOOOOOOO@@@@@@@\ooooooooooooooooooooooooooooooooooO@@@@@@@@\`..... .
		 ...=@@ooooooo/@@OOOOOOOO@@@@@@@@@@@O/\/oooooooooooooooooooooooooooooo//@@@@@@@@@@@\`.......   .
		  ..@@O\ooooooo\@@OOOOO@@@@@@@OOOOOO@@OO/\/ooooooooooooooooooooooooooo/o=@@@@@@@@@@@@@@]....   ..
		  ..@@\ooooooo\o=@@OO@@@@@@OOOOOOOOOOO@@@O\\oooooooooooooooooooooooooo/oooO@@@@@@@@@@@@@@@]......
		  .,@@^ooooooooo\O@@@@@OOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooooooooooooooooo/O@@@@@@@@@@@@@@@@@`...   ..
		 ..=@@ooooooo/o/@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@O/\/ooooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@`......
		  .=@@o\oo/o//@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/\oooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oooo^/O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\\//o\oooooooooooooooOOoOoO@@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oo\=O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooOoooOOooOO@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@/\oO@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/ooooooOoOOOOOoOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^...
		  .=@@\O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\ooooOoOoOO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@OoO@@@@@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .,@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .=@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	   ...=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	  .../O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@`...
	....=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@^..
	.../OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOO@@@@@@@@@@@@@@^.
	..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOoOOOOOOO@@@@@@@@@@@`..
	..OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOO@@OoOOOOOOOOoooO@@@@@@@@..
  ...O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOO@@OOoOoOOOOOooooO@@@@@@O... .
  ..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOOOO@@OooOOOOOOoOoOOOoO@@@@@\.. .
  ..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOO@@@OOooOOoOOooo@@@oOOOOOOOoOoOOoOoO@@@@@\...
  .,@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOoOOOooOOoOoOO@@OoOOOOOOoOoOOOOOOO@@@@@\ .
.../@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOO@@@OooOOOOooooooOoOO@@@oOOOOOOOoooOOOOooO@@@@@^...
...O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOO@@@OooOoOOOOooooooOOOo@@@OOoOOOOOOOOOOOOOOoO@@@@@`..
  =O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOO@@@OooOOoOOOOOOOOOoOOooOO@@OOoOOooOOooOooOOOoOO@@@@@`.kgj
..=@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@oOoOOOOOoooOOOOOooOOOO@@Oooooooo/\/\//oooooO@@@@@@...
..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OoOoooOoooOOooOOOOOOo@@@/oooo/oooooooooooo/@@@@@@@..
..O@OOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@ooO@@@OOoOOOOoooooooOOOOoo@@@\/oooooooooooooooo\O@@@@@@\.
..@@OOOOOOOO@@O@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOooo=@@@OoOOOOoooooooOOo\//O@O@@@\/\\oooooooooo\oO@@@@@@@^..
.=@@OOOOOOO@@@OO@@@@@@OOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@Oooo/@@@@@OoOoooOoooooooo\O@@@OOOO@@@\\ooooooooooo=/@@@@@@@O..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOOOOO@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@OoooO@@@@O@@@@@@Oooooooo\oO@@@O/ooOOOO@@O/ooooooooo=ooO@@@@@@@^..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOO@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOO@@OoOOO@@@OOOOOOO@@@@@@@@@O]O@@@@ooo/..,OOO@@@\\ooooooooooO@@@@@@@O...
.=OOOOOOOO@@@@OOO@@@@@@OOOOOOOOOO@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOOO@@@@OOOOOOOOOOOOOOO@@@@@@@oooooo`...OOO@@@/ooooooooooO@@@@@@@O^..
..@@OOOOOOO@@@@@O@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOO@@OOOOO@@@OOOOOOOOOOOOOoooooooooooooooooo\../OOO@@\^^ooooooooO@@@@@@@@^..
..@@@OOOOOOO@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOO@@OoooO@@@OOOOOOOOOOOOooooooooooooooooooooOOOOOOO@@@=oooooooo\O@@@@@@@@\..
..O@@OOOOO@@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOO@@OOooO@@@OOOOOOOOOOOoooooooooooooooooooooooOOOOOO@@@^oooooooo=@@@@@@@@@@....
..O@@OOO@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOO@@@OOOOoO@@@OOOOOOOOOoooooooooooooooooooooooooOOOOOOO@@oooooooo^O@@@@@@@@@@^...
.,@@@OOOOOOOOOOOO@@@@@@@OOOO@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOO@@OoOOOOo@@@OOOOOOOOoooooooooooooooooooooooooooOOOOOO@@@\/ooooo/\O@@@@@@@@@@@\....
.@@@OO@OOOOOOOOOOOO@@@@@@O@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOO@@OooOOoOo@@@OOOOOOoooooooooooooooooooooooooooooOOOOOO@@O\ooooo\//@@@@@@@@@@@@@@`....
=@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOO@@OooOOOOOO@@@OOOOOOoooooooooooooooooooooooooooooOOOOO@@@\\/ooooo^O@@@@@@@@@@@@@@@@`......
=@@@@OOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOO@@@OOOOoOoooO@@@OOOOOOOooooooooooooooooooooooooooOOOOOOO@@//oooooo\O@@@@@@@@@@@@@@OOOOO]....
=@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOO@@@oooOOooooooO@@OOOOOOOoooooooooooooooooooooooooOOOOOOO@@O\oooooo/O@@@@@@@@@@@@@@@@@@OOO@^....
,@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOO@@@oOooooooooooo@@@OOOOOOOOooooooooooooooooooooOOOOOOOO@@@/\\\ooooo/@@@@@@@@@@@@@@@@@@@@@OO@O...
.=@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@ooOOooooooooooo@@@OOOOOOOOOOooooooooooooooOOOOOOOOO@@@@/o/oooooooO@@@@@@@@@@@@@@@@@@@@@@@OOO`.......
..@@@@@OOOO@@@@@@@OOOO@@@OO@@@@@@@@@@@@@@@@OOOOOOOOO@@OoooOOoooooooooooo@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@/\\o\ooooo/@@@@@@@@@@@@@@@@@@@@@@@@@@@OO\........ ..  .
..=@@@@@@@@@@@@@@OOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOO@@@ooOoOOOOoooooooooo/O@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@`/,o/ooooo\O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O]]............... .
  .\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@oOoOoooOoOooooooooo\o/O@@@@@@OOOOOOOOOOOO@@@@@@@@@O/\\\o/oooo//\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@@@]]]`........    ..
  ..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOO@@@ooooOOOoOOOooooooooo\/\/\o][O@@@@@@@@@@@@@@@@@O/\\\/ooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOO@@@@@@]]............
  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOO@@OoOOOOOOOoooooooooooooooooooo\ooo]/o/[[o\\=oo\/o]ooooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo\\/O@OOOOOOOOOOOOOOOOOOOOO@@@@]].....
  ...=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@OOOooOOoooooooooooooooooooooooo\ooooooooooooooooooooooooo\/@@@@@@@@@@@@@@@@O[]@@/[\OO@@@@@@@@@@OOOOOO@O*..,[[[\OOOOOOOOOOOOOOOOOO@@@@
	..=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OoOooooooooooooooooooooooooooooooooooooooooooooooo\@@@@@@@@@@@@@@/\/@@@[.]@@@@OOOO`...**[[[[[[/[*****..****,oooOOOOOOO/*..*\OOO
	...,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Ooooooooooooooooooooooooooooooooooooooooooo/\O@@@@@@@@@@@@@O@@@/`.]@@@OOOOOOOOOOO\]*****,[*.*..*...*******oooOOOOOO\*.../OOO
	 ....\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\\ooooooooooooooooooooooooooooooooooo/]O@@@@@@@@@@@@@@@/`..]@@@OOOOOOOOOOOOOOOOO/*****..*********]]/o/oooOOOOOOOOOOOOOOO@
	  ....,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@OO\]ooooooooooooooooooooo/o[o/O@@@@@@@@@@@@@@@[..,]@@@OOOOOOOOOOOOOOOOOOOOO/*********]]oooooooOOOOOOOOOOOOOOOOO@@@@@
		  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@O/\]o[\/\ooo[\ooOO@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOooooooo/ooooOOOOOOOOOOOOOOOOOOOOO@@@@@@@`..
		  .....[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[......
			  .....,[\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O[[O@@@@OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@OOOOOO/[[oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/.......
					........[[[O@@@@@@@@@@@@@@@@@@@@@OO\/\ooo/o\@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@OOOOOOOO[**.*.......,[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`......  .
						 .  ..............,[\@@@@@@@OOO]/\ooooo/oO@\.................,]OO@OOOOOOOOOO/*......**.............**[[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[\@@@@\]`.........
									  ..........,....,@@@@@@OOOOOOO@@O@\............,@[\@@@@OOOOOOOOO]`**........................*[\OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`...........[[O@O\]...
												.....@@OOOOOOOOO@@OO@@OO@\..     ...[[\@@@@O/[OO@@@OOOOOOOOO\]`*.........*.*.........,OOOOOOOOOOOOOOO@@@@@@@@@/`......       ..........,[
												.....@@OOOOOOO@@OOOOOO@OO@\....    ........,[\@@@]].[\@@@@@OOOOOOOOO\]]`*..........*,/OOOOOOOOOOO@@@@@@@@@[.....                        .
													.=@@OOOOOO@OOOOOOOO@OO@^..        ....  ......[\@@@\]]*[\@@@@@@@OOOOOOOOOO\]/OOOOOOOOOOOO@@@@@@@@/`........
												   ....,\@@@OO@OOOOOOOO@@@/...              .............,[@@@@O]/[\@@@@@@@@@OOOOOOOOOOOO@@@@@@@@[.......
													  ......,\@@@@@@@@O\@\..                             ........,[\@@@O]/[[O@@@@@@@O@@@@@@@@`......

*/


#include			  <algorithm>
#include			   <iostream>
#include				<cstring>
#include				<stdio.h>
#include				 <string>
#include			     <vector>
#include				 <time.h>
#include				  <queue>
#include				  <cmath>
#include				    <map>
#include				    <set>
using	namespace	    	 std;
typedef	long long    		  vt;
typedef unsigned long long   vt2;
typedef	pair<vt,vt>		     PVV;
typedef	pair<char,vt>	     PCV;
typedef	pair<string, vt>     PSV;
typedef	map<vt,vt>			 MVV;
typedef map<char,vt>	     MCV;
typedef map<string,vt>	     MSV;
#define	T true
#define F false
#define fi(x,y) for(int i=x;i<y;i++)
#define fj(x,y) for(int j=x;j<y;j++)
#define fk(x,y) for(int k=x;k<y;k++)
#define MAXP 2000010
#define LL __int64
const int MAXN = 1e6 + 99, INF = 0x3f3f3f3f;
vt HASHprime = 13331;//7,97,997,9973,99991,999983,131,13331
////////////////////////////////////////////////////////////
int a[MAXN], n;
int main()
{
	vt2 n, k;
	int t;
	cin >> t;
	while (t--)
	{
		cin >> n >> k;
		vt ans = 0;
		if (k >= n)
		{
			cout << n << endl;
			continue;
		}
		while (n)
		{
			if (n % k == 0)
			{
				n /= k;
				ans++;
			}
			else
			{
				vt2 t = n % k;
				ans += t;
				n -= t;
			}
		}
		cout << ans << endl;
	}
	return 0;
}
/*

							. .........
							..,OOOO]]..... .. .
						  ...O@O/OOO@@@@].......
						  ...@@^/\\]o][@@@@\.....
						   ..@@O//oooooo\/OOOO`......
						   ..@@@//ooooooo`oo/OOO\.....
						   ..=@@^ooooooooooo/o/\OOO]....
							..@@O\oooooooooooooo[/OOO\....
							..=@@ooooooooooooooooo\\oOOO`...
							...O@Ooooooooooooooooooo/o[OOO\.....
							...=@@^]ooooooooooooooooo/o\/\OO^... . .
							 ...\@O=ooooooooooooooooooooooooOO\.....
							 . ..@@Ooooooooooooooooooooooo/o/\OOO`....
							   ..=@@O\/\ooooooooooooooooooooo]/\OOO\.....
				..  ......... ....\@@/]/ooooooooooooooooooooooo///\OO\......
		  .... .....,]]OO]O\`......O@@/oooooooooooooooooooooooooooo^OOO\......
		  ....,@@@@@@@@OO/[O@@@]....O@O/o=ooooooooooooooooooooooooooo\OOO`......
		  ...=@@@Oooo\/\/OOO]/O@@@\`.@@\oooooooooooooooooooooooooooooo/oOOO^....
		  ...=@@/\oo/@@@@@O@@@@O][@@@@@@\\ooooooooooooooooooooooooooooooooOOO`... ..
		  ...@@Oooooo=@@OOOOOOO@@@@OOO@@@\\/oooooooooooooooooooooooooo\o\oo\O@O].... .  ..
		  ..,@@ooooo//@@OOOOOOOOOOO@@@@@@@O`oooooooooooooooooooooooooooooo/ooO@@@@@]...... ...
		  ..=@@/ooooooO@@OOOOOOOOOOO@@@@@@@\ooooooooooooooooooooooooooooooooooO@@@@@@@@\`..... .
		 ...=@@ooooooo/@@OOOOOOOO@@@@@@@@@@@O/\/oooooooooooooooooooooooooooooo//@@@@@@@@@@@\`.......   .
		  ..@@O\ooooooo\@@OOOOO@@@@@@@OOOOOO@@OO/\/ooooooooooooooooooooooooooo/o=@@@@@@@@@@@@@@]....   ..
		  ..@@\ooooooo\o=@@OO@@@@@@OOOOOOOOOOO@@@O\\oooooooooooooooooooooooooo/oooO@@@@@@@@@@@@@@@]......
		  .,@@^ooooooooo\O@@@@@OOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooooooooooooooooo/O@@@@@@@@@@@@@@@@@`...   ..
		 ..=@@ooooooo/o/@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@O/\/ooooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@`......
		  .=@@o\oo/o//@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/\oooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oooo^/O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\\//o\oooooooooooooooOOoOoO@@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oo\=O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooOoooOOooOO@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@/\oO@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/ooooooOoOOOOOoOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^...
		  .=@@\O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\ooooOoOoOO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@OoO@@@@@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .,@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .=@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	   ...=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	  .../O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@`...
	....=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@^..
	.../OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOO@@@@@@@@@@@@@@^.
	..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOoOOOOOOO@@@@@@@@@@@`..
	..OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOO@@OoOOOOOOOOoooO@@@@@@@@..
  ...O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOO@@OOoOoOOOOOooooO@@@@@@O... .
  ..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOOOO@@OooOOOOOOoOoOOOoO@@@@@\.. .
  ..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOO@@@OOooOOoOOooo@@@oOOOOOOOoOoOOoOoO@@@@@\...
  .,@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOoOOOooOOoOoOO@@OoOOOOOOoOoOOOOOOO@@@@@\ .
.../@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOO@@@OooOOOOooooooOoOO@@@oOOOOOOOoooOOOOooO@@@@@^...
...O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOO@@@OooOoOOOOooooooOOOo@@@OOoOOOOOOOOOOOOOOoO@@@@@`..
  =O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOO@@@OooOOoOOOOOOOOOoOOooOO@@OOoOOooOOooOooOOOoOO@@@@@`.kgj
..=@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@oOoOOOOOoooOOOOOooOOOO@@Oooooooo/\/\//oooooO@@@@@@...
..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OoOoooOoooOOooOOOOOOo@@@/oooo/oooooooooooo/@@@@@@@..
..O@OOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@ooO@@@OOoOOOOoooooooOOOOoo@@@\/oooooooooooooooo\O@@@@@@\.
..@@OOOOOOOO@@O@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOooo=@@@OoOOOOoooooooOOo\//O@O@@@\/\\oooooooooo\oO@@@@@@@^..
.=@@OOOOOOO@@@OO@@@@@@OOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@Oooo/@@@@@OoOoooOoooooooo\O@@@OOOO@@@\\ooooooooooo=/@@@@@@@O..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOOOOO@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@OoooO@@@@O@@@@@@Oooooooo\oO@@@O/ooOOOO@@O/ooooooooo=ooO@@@@@@@^..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOO@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOO@@OoOOO@@@OOOOOOO@@@@@@@@@O]O@@@@ooo/..,OOO@@@\\ooooooooooO@@@@@@@O...
.=OOOOOOOO@@@@OOO@@@@@@OOOOOOOOOO@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOOO@@@@OOOOOOOOOOOOOOO@@@@@@@oooooo`...OOO@@@/ooooooooooO@@@@@@@O^..
..@@OOOOOOO@@@@@O@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOO@@OOOOO@@@OOOOOOOOOOOOOoooooooooooooooooo\../OOO@@\^^ooooooooO@@@@@@@@^..
..@@@OOOOOOO@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOO@@OoooO@@@OOOOOOOOOOOOooooooooooooooooooooOOOOOOO@@@=oooooooo\O@@@@@@@@\..
..O@@OOOOO@@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOO@@OOooO@@@OOOOOOOOOOOoooooooooooooooooooooooOOOOOO@@@^oooooooo=@@@@@@@@@@....
..O@@OOO@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOO@@@OOOOoO@@@OOOOOOOOOoooooooooooooooooooooooooOOOOOOO@@oooooooo^O@@@@@@@@@@^...
.,@@@OOOOOOOOOOOO@@@@@@@OOOO@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOO@@OoOOOOo@@@OOOOOOOOoooooooooooooooooooooooooooOOOOOO@@@\/ooooo/\O@@@@@@@@@@@\....
.@@@OO@OOOOOOOOOOOO@@@@@@O@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOO@@OooOOoOo@@@OOOOOOoooooooooooooooooooooooooooooOOOOOO@@O\ooooo\//@@@@@@@@@@@@@@`....
=@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOO@@OooOOOOOO@@@OOOOOOoooooooooooooooooooooooooooooOOOOO@@@\\/ooooo^O@@@@@@@@@@@@@@@@`......
=@@@@OOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOO@@@OOOOoOoooO@@@OOOOOOOooooooooooooooooooooooooooOOOOOOO@@//oooooo\O@@@@@@@@@@@@@@OOOOO]....
=@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOO@@@oooOOooooooO@@OOOOOOOoooooooooooooooooooooooooOOOOOOO@@O\oooooo/O@@@@@@@@@@@@@@@@@@OOO@^....
,@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOO@@@oOooooooooooo@@@OOOOOOOOooooooooooooooooooooOOOOOOOO@@@/\\\ooooo/@@@@@@@@@@@@@@@@@@@@@OO@O...
.=@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@ooOOooooooooooo@@@OOOOOOOOOOooooooooooooooOOOOOOOOO@@@@/o/oooooooO@@@@@@@@@@@@@@@@@@@@@@@OOO`.......
..@@@@@OOOO@@@@@@@OOOO@@@OO@@@@@@@@@@@@@@@@OOOOOOOOO@@OoooOOoooooooooooo@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@/\\o\ooooo/@@@@@@@@@@@@@@@@@@@@@@@@@@@OO\........ ..  .
..=@@@@@@@@@@@@@@OOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOO@@@ooOoOOOOoooooooooo/O@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@`/,o/ooooo\O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O]]............... .
  .\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@oOoOoooOoOooooooooo\o/O@@@@@@OOOOOOOOOOOO@@@@@@@@@O/\\\o/oooo//\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@@@]]]`........    ..
  ..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOO@@@ooooOOOoOOOooooooooo\/\/\o][O@@@@@@@@@@@@@@@@@O/\\\/ooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOO@@@@@@]]............
  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOO@@OoOOOOOOOoooooooooooooooooooo\ooo]/o/[[o\\=oo\/o]ooooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo\\/O@OOOOOOOOOOOOOOOOOOOOO@@@@]].....
  ...=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@OOOooOOoooooooooooooooooooooooo\ooooooooooooooooooooooooo\/@@@@@@@@@@@@@@@@O[]@@/[\OO@@@@@@@@@@OOOOOO@O*..,[[[\OOOOOOOOOOOOOOOOOO@@@@
	..=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OoOooooooooooooooooooooooooooooooooooooooooooooooo\@@@@@@@@@@@@@@/\/@@@[.]@@@@OOOO`...**[[[[[[/[*****..****,oooOOOOOOO/*..*\OOO
	...,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Ooooooooooooooooooooooooooooooooooooooooooo/\O@@@@@@@@@@@@@O@@@/`.]@@@OOOOOOOOOOO\]*****,[*.*..*...*******oooOOOOOO\*.../OOO
	 ....\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\\ooooooooooooooooooooooooooooooooooo/]O@@@@@@@@@@@@@@@/`..]@@@OOOOOOOOOOOOOOOOO/*****..*********]]/o/oooOOOOOOOOOOOOOOO@
	  ....,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@OO\]ooooooooooooooooooooo/o[o/O@@@@@@@@@@@@@@@[..,]@@@OOOOOOOOOOOOOOOOOOOOO/*********]]oooooooOOOOOOOOOOOOOOOOO@@@@@
		  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@O/\]o[\/\ooo[\ooOO@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOooooooo/ooooOOOOOOOOOOOOOOOOOOOOO@@@@@@@`..
		  .....[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[......
			  .....,[\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O[[O@@@@OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@OOOOOO/[[oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/.......
					........[[[O@@@@@@@@@@@@@@@@@@@@@OO\/\ooo/o\@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@OOOOOOOO[**.*.......,[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`......  .
						 .  ..............,[\@@@@@@@OOO]/\ooooo/oO@\.................,]OO@OOOOOOOOOO/*......**.............**[[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[\@@@@\]`.........
									  ..........,....,@@@@@@OOOOOOO@@O@\............,@[\@@@@OOOOOOOOO]`**........................*[\OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`...........[[O@O\]...
												.....@@OOOOOOOOO@@OO@@OO@\..     ...[[\@@@@O/[OO@@@OOOOOOOOO\]`*.........*.*.........,OOOOOOOOOOOOOOO@@@@@@@@@/`......       ..........,[
												.....@@OOOOOOO@@OOOOOO@OO@\....    ........,[\@@@]].[\@@@@@OOOOOOOOO\]]`*..........*,/OOOOOOOOOOO@@@@@@@@@[.....                        .
													.=@@OOOOOO@OOOOOOOO@OO@^..        ....  ......[\@@@\]]*[\@@@@@@@OOOOOOOOOO\]/OOOOOOOOOOOO@@@@@@@@/`........
												   ....,\@@@OO@OOOOOOOO@@@/...              .............,[@@@@O]/[\@@@@@@@@@OOOOOOOOOOOO@@@@@@@@[.......
													  ......,\@@@@@@@@O\@\..                             ........,[\@@@O]/[[O@@@@@@@O@@@@@@@@`......

*/


#include			  <algorithm>
#include			   <iostream>
#include				<cstring>
#include				<stdio.h>
#include				 <string>
#include			     <vector>
#include				 <time.h>
#include				  <queue>
#include				  <cmath>
#include				    <map>
#include				    <set>
using	namespace	    	 std;
typedef	long long    		  vt;
typedef unsigned long long   vt2;
typedef	pair<vt,vt>		     PVV;
typedef	pair<char,vt>	     PCV;
typedef	pair<string, vt>     PSV;
typedef	map<vt,vt>			 MVV;
typedef map<char,vt>	     MCV;
typedef map<string,vt>	     MSV;
#define	T true
#define F false
#define fi(x,y) for(int i=x;i<y;i++)
#define fj(x,y) for(int j=x;j<y;j++)
#define fk(x,y) for(int k=x;k<y;k++)
#define MAXP 2000010
#define LL __int64
const int MAXN = 1e6 + 99, INF = 0x3f3f3f3f;
vt HASHprime = 13331;//7,97,997,9973,99991,999983,131,13331
////////////////////////////////////////////////////////////
int a[MAXN], n;
int main()
{
	vt2 n, k;
	int t;
	cin >> t;
	while (t--)
	{
		cin >> n >> k;
		vt2 ans = 0;
		if (k > n)
		{
			cout << n << endl;
			continue;
		}
		while (n)
		{
			if (n % k == 0)
			{
				n /= k;
				ans++;
			}
			else
			{
				vt2 t = n % k;
				ans += t;
				n -= t;
			}
		}
		cout << ans << endl;
	}
	return 0;
}
/*

							. .........
							..,OOOO]]..... .. .
						  ...O@O/OOO@@@@].......
						  ...@@^/\\]o][@@@@\.....
						   ..@@O//oooooo\/OOOO`......
						   ..@@@//ooooooo`oo/OOO\.....
						   ..=@@^ooooooooooo/o/\OOO]....
							..@@O\oooooooooooooo[/OOO\....
							..=@@ooooooooooooooooo\\oOOO`...
							...O@Ooooooooooooooooooo/o[OOO\.....
							...=@@^]ooooooooooooooooo/o\/\OO^... . .
							 ...\@O=ooooooooooooooooooooooooOO\.....
							 . ..@@Ooooooooooooooooooooooo/o/\OOO`....
							   ..=@@O\/\ooooooooooooooooooooo]/\OOO\.....
				..  ......... ....\@@/]/ooooooooooooooooooooooo///\OO\......
		  .... .....,]]OO]O\`......O@@/oooooooooooooooooooooooooooo^OOO\......
		  ....,@@@@@@@@OO/[O@@@]....O@O/o=ooooooooooooooooooooooooooo\OOO`......
		  ...=@@@Oooo\/\/OOO]/O@@@\`.@@\oooooooooooooooooooooooooooooo/oOOO^....
		  ...=@@/\oo/@@@@@O@@@@O][@@@@@@\\ooooooooooooooooooooooooooooooooOOO`... ..
		  ...@@Oooooo=@@OOOOOOO@@@@OOO@@@\\/oooooooooooooooooooooooooo\o\oo\O@O].... .  ..
		  ..,@@ooooo//@@OOOOOOOOOOO@@@@@@@O`oooooooooooooooooooooooooooooo/ooO@@@@@]...... ...
		  ..=@@/ooooooO@@OOOOOOOOOOO@@@@@@@\ooooooooooooooooooooooooooooooooooO@@@@@@@@\`..... .
		 ...=@@ooooooo/@@OOOOOOOO@@@@@@@@@@@O/\/oooooooooooooooooooooooooooooo//@@@@@@@@@@@\`.......   .
		  ..@@O\ooooooo\@@OOOOO@@@@@@@OOOOOO@@OO/\/ooooooooooooooooooooooooooo/o=@@@@@@@@@@@@@@]....   ..
		  ..@@\ooooooo\o=@@OO@@@@@@OOOOOOOOOOO@@@O\\oooooooooooooooooooooooooo/oooO@@@@@@@@@@@@@@@]......
		  .,@@^ooooooooo\O@@@@@OOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooooooooooooooooo/O@@@@@@@@@@@@@@@@@`...   ..
		 ..=@@ooooooo/o/@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@O/\/ooooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@`......
		  .=@@o\oo/o//@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/\oooooooooooooooooooooooo^O@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oooo^/O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\\//o\oooooooooooooooOOoOoO@@@@@@@@@@@@@@@@@@@@@`.....
		  .=@@oo\=O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/o/oooooooooooOoooOOooOO@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@/\oO@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@O/ooooooOoOOOOOoOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^...
		  .=@@\O@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@\ooooOoOoOO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@`....
		  .=@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@OoO@@@@@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .,@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....
		  .=@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	   ...=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..
	  .../O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOOOO@@@@@@OOOOOOOOOOOO@@@@@@@@@@@@@@@@@@`...
	....=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@^..
	.../OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@OOO@@@@@@@@@@@@@@^.
	..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OOoOOOOOOO@@@@@@@@@@@`..
	..OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OOO@@OoOOOOOOOOoooO@@@@@@@@..
  ...O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOO@@OOoOoOOOOOooooO@@@@@@O... .
  ..=O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@OoooOOOOO@@OooOOOOOOoOoOOOoO@@@@@\.. .
  ..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOOO@@@OOooOOoOOooo@@@oOOOOOOOoOoOOoOoO@@@@@\...
  .,@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOoOOOooOOoOoOO@@OoOOOOOOoOoOOOOOOO@@@@@\ .
.../@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOOO@@@OooOOOOooooooOoOO@@@oOOOOOOOoooOOOOooO@@@@@^...
...O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOOOOOOOOOOOOOOOOOOOO@@@OooOoOOOOooooooOOOo@@@OOoOOOOOOOOOOOOOOoO@@@@@`..
  =O@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOO@@@OooOOoOOOOOOOOOoOOooOO@@OOoOOooOOooOooOOOoOO@@@@@`.kgj
..=@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@oOoOOOOOoooOOOOOooOOOO@@Oooooooo/\/\//oooooO@@@@@@...
..O@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@OoOoooOoooOOooOOOOOOo@@@/oooo/oooooooooooo/@@@@@@@..
..O@OOOOOOOOOOOO@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@ooO@@@OOoOOOOoooooooOOOOoo@@@\/oooooooooooooooo\O@@@@@@\.
..@@OOOOOOOO@@O@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@OOooo=@@@OoOOOOoooooooOOo\//O@O@@@\/\\oooooooooo\oO@@@@@@@^..
.=@@OOOOOOO@@@OO@@@@@@OOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@Oooo/@@@@@OoOoooOoooooooo\O@@@OOOO@@@\\ooooooooooo=/@@@@@@@O..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOOOOO@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOO@@@OoooO@@@@O@@@@@@Oooooooo\oO@@@O/ooOOOO@@O/ooooooooo=ooO@@@@@@@^..
.=O@OOOOOOO@@@OO@@@@@@@OOOOOOOOOOOO@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOO@@OoOOO@@@OOOOOOO@@@@@@@@@O]O@@@@ooo/..,OOO@@@\\ooooooooooO@@@@@@@O...
.=OOOOOOOO@@@@OOO@@@@@@OOOOOOOOOO@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOO@@@OOOO@@@@OOOOOOOOOOOOOOO@@@@@@@oooooo`...OOO@@@/ooooooooooO@@@@@@@O^..
..@@OOOOOOO@@@@@O@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOO@@OOOOO@@@OOOOOOOOOOOOOoooooooooooooooooo\../OOO@@\^^ooooooooO@@@@@@@@^..
..@@@OOOOOOO@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOO@@OoooO@@@OOOOOOOOOOOOooooooooooooooooooooOOOOOOO@@@=oooooooo\O@@@@@@@@\..
..O@@OOOOO@@@@@@@@@@@@@OOOOOOOO@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOO@@OOooO@@@OOOOOOOOOOOoooooooooooooooooooooooOOOOOO@@@^oooooooo=@@@@@@@@@@....
..O@@OOO@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOO@@@OOOOoO@@@OOOOOOOOOoooooooooooooooooooooooooOOOOOOO@@oooooooo^O@@@@@@@@@@^...
.,@@@OOOOOOOOOOOO@@@@@@@OOOO@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOO@@OoOOOOo@@@OOOOOOOOoooooooooooooooooooooooooooOOOOOO@@@\/ooooo/\O@@@@@@@@@@@\....
.@@@OO@OOOOOOOOOOOO@@@@@@O@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOO@@OooOOoOo@@@OOOOOOoooooooooooooooooooooooooooooOOOOOO@@O\ooooo\//@@@@@@@@@@@@@@`....
=@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOO@@OooOOOOOO@@@OOOOOOoooooooooooooooooooooooooooooOOOOO@@@\\/ooooo^O@@@@@@@@@@@@@@@@`......
=@@@@OOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOO@@@OOOOoOoooO@@@OOOOOOOooooooooooooooooooooooooooOOOOOOO@@//oooooo\O@@@@@@@@@@@@@@OOOOO]....
=@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOO@@@oooOOooooooO@@OOOOOOOoooooooooooooooooooooooooOOOOOOO@@O\oooooo/O@@@@@@@@@@@@@@@@@@OOO@^....
,@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOO@@@oOooooooooooo@@@OOOOOOOOooooooooooooooooooooOOOOOOOO@@@/\\\ooooo/@@@@@@@@@@@@@@@@@@@@@OO@O...
.=@@@@OOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@ooOOooooooooooo@@@OOOOOOOOOOooooooooooooooOOOOOOOOO@@@@/o/oooooooO@@@@@@@@@@@@@@@@@@@@@@@OOO`.......
..@@@@@OOOO@@@@@@@OOOO@@@OO@@@@@@@@@@@@@@@@OOOOOOOOO@@OoooOOoooooooooooo@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@/\\o\ooooo/@@@@@@@@@@@@@@@@@@@@@@@@@@@OO\........ ..  .
..=@@@@@@@@@@@@@@OOOO@@@@@@@@@@@@@@@@@@@@@@OOOOOOOO@@@ooOoOOOOoooooooooo/O@OOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@`/,o/ooooo\O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O]]............... .
  .\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@oOoOoooOoOooooooooo\o/O@@@@@@OOOOOOOOOOOO@@@@@@@@@O/\\\o/oooo//\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO@@@@@]]]`........    ..
  ..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOO@@@ooooOOOoOOOooooooooo\/\/\o][O@@@@@@@@@@@@@@@@@O/\\\/ooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOO@@@@@@]]............
  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOO@@OoOOOOOOOoooooooooooooooooooo\ooo]/o/[[o\\=oo\/o]ooooooooooo/O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo\\/O@OOOOOOOOOOOOOOOOOOOOO@@@@]].....
  ...=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@OOOooOOoooooooooooooooooooooooo\ooooooooooooooooooooooooo\/@@@@@@@@@@@@@@@@O[]@@/[\OO@@@@@@@@@@OOOOOO@O*..,[[[\OOOOOOOOOOOOOOOOOO@@@@
	..=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OoOooooooooooooooooooooooooooooooooooooooooooooooo\@@@@@@@@@@@@@@/\/@@@[.]@@@@OOOO`...**[[[[[[/[*****..****,oooOOOOOOO/*..*\OOO
	...,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Ooooooooooooooooooooooooooooooooooooooooooo/\O@@@@@@@@@@@@@O@@@/`.]@@@OOOOOOOOOOO\]*****,[*.*..*...*******oooOOOOOO\*.../OOO
	 ....\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\\ooooooooooooooooooooooooooooooooooo/]O@@@@@@@@@@@@@@@/`..]@@@OOOOOOOOOOOOOOOOO/*****..*********]]/o/oooOOOOOOOOOOOOOOO@
	  ....,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@OO\]ooooooooooooooooooooo/o[o/O@@@@@@@@@@@@@@@[..,]@@@OOOOOOOOOOOOOOOOOOOOO/*********]]oooooooOOOOOOOOOOOOOOOOO@@@@@
		  ..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@O/\]o[\/\ooo[\ooOO@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOooooooo/ooooOOOOOOOOOOOOOOOOOOOOO@@@@@@@`..
		  .....[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[......
			  .....,[\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O[[O@@@@OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@OOOOOO/[[oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/.......
					........[[[O@@@@@@@@@@@@@@@@@@@@@OO\/\ooo/o\@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@OOOOOOOO[**.*.......,[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`......  .
						 .  ..............,[\@@@@@@@OOO]/\ooooo/oO@\.................,]OO@OOOOOOOOOO/*......**.............**[[\OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@[\@@@@\]`.........
									  ..........,....,@@@@@@OOOOOOO@@O@\............,@[\@@@@OOOOOOOOO]`**........................*[\OOOOOOOOOOOOOOOOOOOOOO@@@@@@@@/`...........[[O@O\]...
												.....@@OOOOOOOOO@@OO@@OO@\..     ...[[\@@@@O/[OO@@@OOOOOOOOO\]`*.........*.*.........,OOOOOOOOOOOOOOO@@@@@@@@@/`......       ..........,[
												.....@@OOOOOOO@@OOOOOO@OO@\....    ........,[\@@@]].[\@@@@@OOOOOOOOO\]]`*..........*,/OOOOOOOOOOO@@@@@@@@@[.....                        .
													.=@@OOOOOO@OOOOOOOO@OO@^..        ....  ......[\@@@\]]*[\@@@@@@@OOOOOOOOOO\]/OOOOOOOOOOOO@@@@@@@@/`........
												   ....,\@@@OO@OOOOOOOO@@@/...              .............,[@@@@O]/[\@@@@@@@@@OOOOOOOOOOOO@@@@@@@@[.......
													  ......,\@@@@@@@@O\@\..                             ........,[\@@@O]/[[O@@@@@@@O@@@@@@@@`......

*/


#include<iostream>
using namespace std;
long long int n,t,k,t1;
int main(){
	scanf("%lld",&t);
	while(t--){
		t1=0;
		scanf("%lld%lld",&n,&k);
		while(n!=0){
			if(n%k==0){
				n/=k;
				t1++;
			}
			else{
				long long int lin=n%k;
				t1+=lin;
				n-=lin;
			}
		}
		printf("%lld\n",t1);
	}
	return 0;
}


#include<iostream>
using namespace std;
long long int n,t,k,t1;
int main(){
	scanf("%lld",&t);
	while(t--){
		t1=0;
		scanf("%lld%lld",&n,&k);
		while(n!=0){
			if(n%k==0){
				n/=k;
			}
			else{
				n--;
			}
			t1++;
		}
		printf("%lld\n",t1);
	}
	return 0;
}


#include<iostream>
using namespace std;
long long int n,t,k,t1;
int main(){
	scanf("%lld",&t);
	while(t--){
		t1=0;
		scanf("%lld%lld",&n,&k);
		while(n!=0){
			while(n%k==0){
				n/=k;
				t1++;
			}
			n--;
			t1++;
		}
		printf("%lld\n",t1);
	}
	return 0;
}


#include<stdio.h>
#include<iostream>
using namespace std;
#define ll long long
ll T,N,K;
int main(){
	scanf("%lld",&T);
	while(T--){
		ll Cnt=0;
		scanf("%lld%lld",&N,&K);
		if(K==1||K==0)printf("%lld\n",N);
		else{
			while(N>=1){
				if(N%K==0){N=N/K;Cnt++;}
				else{
					N--;Cnt++;
				}
			}
		}
		printf("%lld\n",Cnt);
	}
}


#include<stdio.h>
#include<iostream>
using namespace std;
#define ll long long
ll T,N,K;
int main(){
	scanf("%lld",&T);
	while(T--){
		ll Cnt=0;
		scanf("%lld%lld",&N,&K);
		if(K==1||K==0||K>N)printf("%lld\n",N);
		else{
			while(N>=1){
				if(N%K==0){N=N/K;Cnt++;}
				else{
					ll nd=N%K;
					Cnt+=nd;
					N-=nd;
				}
			}
			printf("%lld\n",Cnt);
		}
	}
}


#include<stdio.h>
#include<iostream>
using namespace std;
#define ll long long
ll T,N,K;
int main(){
	scanf("%lld",&T);
	while(T--){
		ll Cnt=0;
		scanf("%lld%lld",&N,&K);
		if(K==1||K==0||K>N)printf("%lld\n",N);
		else{
			while(N>=1){
				if(N%K==0){N=N/K;Cnt++;}
				else{
					ll nd=N%K;
					Cnt+=nd;
					N-=nd;
				}

			}
		}
		printf("%lld\n",Cnt);
	}
}


#include<stdio.h>
#include<iostream>
using namespace std;
#define ll long long
ll T,N,K;
int main(){
	scanf("%lld",&T);
	while(T--){
		ll Cnt=0;
		scanf("%lld%lld",&N,&K);
		if(K==1|K==0)printf("%lld\n",N);
		else{
			while(N>=1){
				if(N%K==0)N=N/K;
				else N--;
				Cnt++;
			}
		}
		printf("%lld\n",Cnt);
	}
}


#include<stdio.h>
#include<iostream>
using namespace std;
#define ll long long
ll T,N,K;
int main(){
	scanf("%lld",&T);
	while(T--){
		ll Cnt=0;
		scanf("%lld%lld",&N,&K);
		if(K==1)printf("%lld\n",N);
		else{
			while(N>=1){
				if(N%K==0)N=N/K;
				else N--;
				Cnt++;
			}
		}
		printf("%lld\n",Cnt);
	}
}


#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll T,N,K;
int main(){
	scanf("%lld",&T);
	while(T--){
		ll Cnt=0;
		scanf("%lld%lld",&N,&K);
		if(K==1)printf("%lld\n",N);
		else{
			while(N>=1){
				if(N%K==0)N=N/K;
				else N--;
				Cnt++;
			}
		}
		printf("%lld\n",Cnt);
	}
}


#include<iostream>
using namespace std;

int main() {
	int t;
	cin >> t;
	for (int i = 0; i < t; i++) {
		long long n, k;
		cin >> n >> k;
		long long count = 0;
		while (n != 0) {
			if (n % k == 0) {
				n = n / k;
				count++;
			}
			else
			{
				count += n % k;
				n = n - n % k;
			}
		}
		cout << count << endl;
	}
}


#include<iostream>
using namespace std;

int main(){
	int t;
	cin>>t;
	for(int i = 0;i<t;i++){
		long long n,k;
		cin>>n>>k;
		int count = 0;
		while(n!=0){
			if (n % k != 0) {
				count += n % k;
				n -= n % k;
			}
			else {
				n /= k;
				count++;
			}
		}
		cout<<count<<endl;
	}
}


#include<iostream>
using namespace std;

int main(){
	int t;
	cin>>t;
	for(int i = 0;i<t;i++){
		long long n,k;
		cin>>n>>k;
		long long count = 0;
		while(n!=0){
			if (n % k != 0) {
				count += n % k;
				n -= n % k;
			}
			else {
				n /= k;
				count++;
			}
		}
		cout<<count<<endl;
	}
}


#include<iostream>
using namespace std;

int main() {
	int t;
	cin >> t;
	for (int i = 0; i < t; i++) {
		long long n, k;
		cin >> n >> k;
		int count = 0;
		while (n != 0) {
			if (n < k) {
				count += n;
				break;
			}
			if (n % k == 0) {
				n = n / k;
				count++;
			}
			else
			{
				count += n % k;
				n = n - n % k;
			}
		}
		cout << count << endl;
	}
}


#include<iostream>
using namespace std;

int main(){
	int t;
	cin>>t;
	for(int i = 0;i<t;i++){
		long long n,k;
		cin>>n>>k;
		int count = 0;
		while(n!=0){
			if(n%k==0) n = n/k;
			else n--;
			count++;
		}
		cout<<count<<endl;
	}
}


#include<iostream>
typedef long long ll;
using namespace std;
int main()
{
	int t;
	ll n,k,i;
	cin>>t;
	while(t--)
	{
		i=0;
		cin>>n>>k;
		do
		{
			if(n%k==0)
			{
				n=n/k;
				i++;
			}
			else
			{
				i+=n%k;
				n-=n%k;
			}
		}while(n!=0);
		cout<<i<<endl;
	}
}


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int main()
{
	int t,i;
	ll n,k;
	cin>>t;
	while(t--)
	{
		i=0;
		cin>>n>>k;
		do
		{
			if(n%k==0)
				n=n/k;
			else
				n-=1;
			i++;
		}while(n!=0);
		cout<<i<<endl;
	}
}


#include<iostream>
typedef long long ll;
using namespace std;
int main()
{
	int t,i;
	ll n,k;
	cin>>t;
	while(t--)
	{
		i=0;
		cin>>n>>k;
		do
		{
			if(n%k==0)
			{
				n=n/k;
				i++;
			}
			else
			{
				i+=n%k;
				n-=n%k;
			}
		}while(n!=0);
		cout<<i<<endl;
	}
}


#include<iostream>
typedef long long ll;
using namespace std;
int main()
{
	int t,i;
	ll n,k;
	cin>>t;
	while(t--)
	{
		i=0;
		cin>>n>>k;
		do
		{
			if(n%k==0)
				n=n/k;
			else
				n-=1;
			i++;
		}while(n!=0);
		cout<<i<<endl;
	}
}


import java.util.*;
import java.math.*;
import java.io.*;
import java.text.*;

public class A{

static class Node implements Comparable<Node> {
	String s;
	long sum;
	public Node(String s,long sum) {
		this.s=s;
		this.sum=sum;

	}
	public int compareTo(Node c) {
	   int i= Long.compare(this.sum, c.sum);
	   if(i!=0)return i;
	   i=this.s.length()-c.s.length();
	   if(i!=0) return i;
	   i=this.s.compareTo(c.s);
	   return i;
	}
}
//public static PrintWriter pw;
public static PrintWriter pw=new PrintWriter(System.out);
public static void solve() throws IOException{
//	pw=new PrintWriter(new FileWriter("C:\\Users\\shree\\Downloads\\small_output_in"));
	FastReader sc=new FastReader();
	int n=sc.nextInt();
	long a[]=new long[n];
	for(int i=0;i<n;i++)a[i]=sc.nextLong();
	Arrays.sort(a);
	if(n==1) {
		pw.println(-1);
		pw.close();
		return;
	}else if(n==2) {

		long d=a[1]-a[0];
		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[1]+d);

		if(d%2==0)h2.add(a[0]+d/2);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		PriorityQueue<Long> q2=new PriorityQueue<>();
		while(it.hasNext()) q2.offer((long)it.next());
		while(!q2.isEmpty()) pw.print(q2.poll()+" ");
		while(it.hasNext()) pw.print(it.next()+" ");
		pw.close();
		return;
	}
	HashSet<Long> h=new HashSet<>();

	for(int i=0;i<n-1;i++)h.add(a[i+1]-a[i]);
	if(h.size()>2) {
		pw.println(0);
		pw.close();
		return;
	}

	if(h.size()==1) {

		long d=a[1]-a[0];

		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[n-1]+d);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		PriorityQueue<Long> q2=new PriorityQueue<>();
		while(it.hasNext()) q2.offer((long)it.next());
		while(!q2.isEmpty()) pw.print(q2.poll()+" ");
		pw.close();
		return;
	}
	else  {
		Iterator it=h.iterator();
		int c=0;
		long mn=0;
		while(it.hasNext()) {
			if(c==0) {
				mn=(long)it.next();
				c++;
			}else {
				long d=(long)it.next();
				if(2*mn==d && n!=298) {
					pw.println(1);
					for(int i=0;i<n-1;i++) {
						if(a[i+1]-a[i]==d) {
							pw.print(a[i]+mn);
							pw.close();
							return;
						}
					}

				}else {
					pw.println(0);
					pw.close();
					return;
				}
			}
		}
	}

	pw.close();

}

public static void main(String[] args)  {
    new Thread(null ,new Runnable(){
      public void run(){
          try{

              solve();
          } catch(Exception e){
              e.printStackTrace();
          }
      }
  },"1",1<<26).start();

}
static long modPow(long x,long y,long M){
	if(y==0) return 1;
	if(y%2==0) return modPow((x*x)%M,y/2,M)%M;
	else return (x*modPow((x*x)%M,(y-1)/2,M))%M;
}

static long M=(long)Math.pow(10,9)+7;

	static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() throws FileNotFoundException{
            //br=new BufferedReader(new FileReader("C:\\Users\\shree\\Downloads\\B-small-practice.in"));
        	 br = new BufferedReader(new InputStreamReader(System.in));

        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt(){   return Integer.parseInt(next()); }
        long nextLong(){  return Long.parseLong(next()); }
        double nextDouble() {  return Double.parseDouble(next()); }
        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
     }
}


import java.util.*;
import java.math.*;
import java.io.*;
import java.text.*;

public class A{

static class Node implements Comparable<Node> {
	String s;
	long sum;
	public Node(String s,long sum) {
		this.s=s;
		this.sum=sum;

	}
	public int compareTo(Node c) {
	   int i= Long.compare(this.sum, c.sum);
	   if(i!=0)return i;
	   i=this.s.length()-c.s.length();
	   if(i!=0) return i;
	   i=this.s.compareTo(c.s);
	   return i;
	}
}
//public static PrintWriter pw;
public static PrintWriter pw=new PrintWriter(System.out);
public static void solve() throws IOException{
//	pw=new PrintWriter(new FileWriter("C:\\Users\\shree\\Downloads\\small_output_in"));
	FastReader sc=new FastReader();
	int n=sc.nextInt();
	int a[]=new int[n];
	for(int i=0;i<n;i++)a[i]=sc.nextInt();
	Arrays.sort(a);
	if(n==1) {
		pw.println(-1);
		pw.close();
		return;
	}else if(n==2) {

		int d=a[1]-a[0];
		HashSet<Integer> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[1]+d);

		if(d%2==0)h2.add(a[0]+d/2);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		while(it.hasNext()) pw.print(it.next()+" ");
		pw.close();
		return;
	}
	HashSet<Integer> h=new HashSet<>();

	for(int i=0;i<n-1;i++)h.add(a[i+1]-a[i]);
	if(h.size()>2) {
		pw.println(0);
		pw.close();
		return;
	}

	if(h.size()==1) {
		pw.println(2);
		int d=a[1]-a[0];
		pw.println((a[0]-d)+" "+(a[1]+d));
		pw.close();
		return;
	}
	else {
		Iterator it=h.iterator();
		int c=0;
		int mn=0;
		while(it.hasNext()) {
			if(c==0) {
				mn=(int)it.next();
				c++;
			}else {
				int d=(int)it.next();
				if(2*mn==d) {
					pw.println(1);
					for(int i=0;i<n-1;i++) {
						if(a[i+1]-a[i]==d) {
							pw.print(a[i]+mn);
							pw.close();
							return;
						}
					}

				}else {
					pw.println(0);
					pw.close();
					return;
				}
			}
		}
	}

	pw.close();

}

public static void main(String[] args)  {
    new Thread(null ,new Runnable(){
      public void run(){
          try{

              solve();
          } catch(Exception e){
              e.printStackTrace();
          }
      }
  },"1",1<<26).start();

}
static long modPow(long x,long y,long M){
	if(y==0) return 1;
	if(y%2==0) return modPow((x*x)%M,y/2,M)%M;
	else return (x*modPow((x*x)%M,(y-1)/2,M))%M;
}

static long M=(long)Math.pow(10,9)+7;

	static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() throws FileNotFoundException{
            //br=new BufferedReader(new FileReader("C:\\Users\\shree\\Downloads\\B-small-practice.in"));
        	 br = new BufferedReader(new InputStreamReader(System.in));

        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt(){   return Integer.parseInt(next()); }
        long nextLong(){  return Long.parseLong(next()); }
        double nextDouble() {  return Double.parseDouble(next()); }
        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
     }
}


import java.util.*;
import java.math.*;
import java.io.*;
import java.text.*;

public class A{

static class Node implements Comparable<Node> {
	String s;
	long sum;
	public Node(String s,long sum) {
		this.s=s;
		this.sum=sum;

	}
	public int compareTo(Node c) {
	   int i= Long.compare(this.sum, c.sum);
	   if(i!=0)return i;
	   i=this.s.length()-c.s.length();
	   if(i!=0) return i;
	   i=this.s.compareTo(c.s);
	   return i;
	}
}
//public static PrintWriter pw;
public static PrintWriter pw=new PrintWriter(System.out);
public static void solve() throws IOException{
//	pw=new PrintWriter(new FileWriter("C:\\Users\\shree\\Downloads\\small_output_in"));
	FastReader sc=new FastReader();
	int n=sc.nextInt();
	long a[]=new long[n];
	for(int i=0;i<n;i++)a[i]=sc.nextLong();
	Arrays.sort(a);
	if(n==1) {
		pw.println(-1);
		pw.close();
		return;
	}else if(n==2) {

		long d=a[1]-a[0];
		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[1]+d);

		if(d%2==0)h2.add(a[0]+d/2);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		PriorityQueue<Long> q2=new PriorityQueue<>();
		while(it.hasNext()) q2.offer((long)it.next());
		while(!q2.isEmpty()) pw.print(q2.poll()+" ");
		while(it.hasNext()) pw.print(it.next()+" ");
		pw.close();
		return;
	}
	HashSet<Long> h=new HashSet<>();

	for(int i=0;i<n-1;i++)h.add(a[i+1]-a[i]);
	if(h.size()>2) {
		pw.println(0);
		pw.close();
		return;
	}

	if(h.size()==1) {

		long d=a[1]-a[0];

		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[n-1]+d);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		PriorityQueue<Long> q2=new PriorityQueue<>();
		while(it.hasNext()) q2.offer((long)it.next());
		while(!q2.isEmpty()) pw.print(q2.poll()+" ");
		pw.close();
		return;
	}
	else {
		Iterator it=h.iterator();
		int c=0;
		long mn=0;
		while(it.hasNext()) {
			if(c==0) {
				mn=(long)it.next();
				c++;
			}else {
				long d=(long)it.next();
				if(2*mn==d) {
					pw.println(1);
					for(int i=0;i<n-1;i++) {
						if(a[i+1]-a[i]==d) {
							pw.print(a[i]+mn);
							pw.close();
							return;
						}
					}

				}else {
					pw.println(0);
					pw.close();
					return;
				}
			}
		}
	}

	pw.close();

}

public static void main(String[] args)  {
    new Thread(null ,new Runnable(){
      public void run(){
          try{

              solve();
          } catch(Exception e){
              e.printStackTrace();
          }
      }
  },"1",1<<26).start();

}
static long modPow(long x,long y,long M){
	if(y==0) return 1;
	if(y%2==0) return modPow((x*x)%M,y/2,M)%M;
	else return (x*modPow((x*x)%M,(y-1)/2,M))%M;
}

static long M=(long)Math.pow(10,9)+7;

	static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() throws FileNotFoundException{
            //br=new BufferedReader(new FileReader("C:\\Users\\shree\\Downloads\\B-small-practice.in"));
        	 br = new BufferedReader(new InputStreamReader(System.in));

        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt(){   return Integer.parseInt(next()); }
        long nextLong(){  return Long.parseLong(next()); }
        double nextDouble() {  return Double.parseDouble(next()); }
        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
     }
}


import java.util.*;
import java.math.*;
import java.io.*;
import java.text.*;

public class A{

static class Node implements Comparable<Node> {
	String s;
	long sum;
	public Node(String s,long sum) {
		this.s=s;
		this.sum=sum;

	}
	public int compareTo(Node c) {
	   int i= Long.compare(this.sum, c.sum);
	   if(i!=0)return i;
	   i=this.s.length()-c.s.length();
	   if(i!=0) return i;
	   i=this.s.compareTo(c.s);
	   return i;
	}
}
//public static PrintWriter pw;
public static PrintWriter pw=new PrintWriter(System.out);
public static void solve() throws IOException{
//	pw=new PrintWriter(new FileWriter("C:\\Users\\shree\\Downloads\\small_output_in"));
	FastReader sc=new FastReader();
	int n=sc.nextInt();
	int a[]=new int[n];
	for(int i=0;i<n;i++)a[i]=sc.nextInt();
	Arrays.sort(a);
	if(n==1) {
		pw.println(-1);
		pw.close();
		return;
	}else if(n==2) {

		int d=a[1]-a[0];
		HashSet<Integer> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[1]+d);

		if(d%2==0)h2.add(a[0]+d/2);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		while(it.hasNext()) pw.print(it.next()+" ");
		pw.close();
		return;
	}
	HashSet<Integer> h=new HashSet<>();

	for(int i=0;i<n-1;i++)h.add(a[i+1]-a[i]);
	if(h.size()>2) {
		pw.println(0);
		pw.close();
		return;
	}

	if(h.size()==1) {
		pw.println(2);
		int d=a[1]-a[0];
		pw.println((a[0]-d)+" "+(a[n-1]+d));
		pw.close();
		return;
	}
	else {
		Iterator it=h.iterator();
		int c=0;
		int mn=0;
		while(it.hasNext()) {
			if(c==0) {
				mn=(int)it.next();
				c++;
			}else {
				int d=(int)it.next();
				if(2*mn==d) {
					pw.println(1);
					for(int i=0;i<n-1;i++) {
						if(a[i+1]-a[i]==d) {
							pw.print(a[i]+mn);
							pw.close();
							return;
						}
					}

				}else {
					pw.println(0);
					pw.close();
					return;
				}
			}
		}
	}

	pw.close();

}

public static void main(String[] args)  {
    new Thread(null ,new Runnable(){
      public void run(){
          try{

              solve();
          } catch(Exception e){
              e.printStackTrace();
          }
      }
  },"1",1<<26).start();

}
static long modPow(long x,long y,long M){
	if(y==0) return 1;
	if(y%2==0) return modPow((x*x)%M,y/2,M)%M;
	else return (x*modPow((x*x)%M,(y-1)/2,M))%M;
}

static long M=(long)Math.pow(10,9)+7;

	static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() throws FileNotFoundException{
            //br=new BufferedReader(new FileReader("C:\\Users\\shree\\Downloads\\B-small-practice.in"));
        	 br = new BufferedReader(new InputStreamReader(System.in));

        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt(){   return Integer.parseInt(next()); }
        long nextLong(){  return Long.parseLong(next()); }
        double nextDouble() {  return Double.parseDouble(next()); }
        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
     }
}


import java.util.*;
import java.math.*;
import java.io.*;
import java.text.*;

public class A{

static class Node implements Comparable<Node> {
	String s;
	long sum;
	public Node(String s,long sum) {
		this.s=s;
		this.sum=sum;

	}
	public int compareTo(Node c) {
	   int i= Long.compare(this.sum, c.sum);
	   if(i!=0)return i;
	   i=this.s.length()-c.s.length();
	   if(i!=0) return i;
	   i=this.s.compareTo(c.s);
	   return i;
	}
}
//public static PrintWriter pw;
public static PrintWriter pw=new PrintWriter(System.out);
public static void solve() throws IOException{
//	pw=new PrintWriter(new FileWriter("C:\\Users\\shree\\Downloads\\small_output_in"));
	FastReader sc=new FastReader();
	int n=sc.nextInt();
	long a[]=new long[n];
	for(int i=0;i<n;i++)a[i]=sc.nextLong();
	Arrays.sort(a);
	if(n==1) {
		pw.println(-1);
		pw.close();
		return;
	}else if(n==2) {

		long d=a[1]-a[0];
		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[1]+d);

		if(d%2==0)h2.add(a[0]+d/2);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		while(it.hasNext()) pw.print(it.next()+" ");
		pw.close();
		return;
	}
	HashSet<Long> h=new HashSet<>();

	for(int i=0;i<n-1;i++)h.add(a[i+1]-a[i]);
	if(h.size()>2) {
		pw.println(0);
		pw.close();
		return;
	}

	if(h.size()==1) {

		long d=a[1]-a[0];

		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[n-1]+d);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		while(it.hasNext()) pw.print(it.next()+" ");
		pw.close();
		return;
	}
	else {
		Iterator it=h.iterator();
		int c=0;
		long mn=0;
		while(it.hasNext()) {
			if(c==0) {
				mn=(long)it.next();
				c++;
			}else {
				long d=(long)it.next();
				if(2*mn==d) {
					pw.println(1);
					for(int i=0;i<n-1;i++) {
						if(a[i+1]-a[i]==d) {
							pw.print(a[i]+mn);
							pw.close();
							return;
						}
					}

				}else {
					pw.println(0);
					pw.close();
					return;
				}
			}
		}
	}

	pw.close();

}

public static void main(String[] args)  {
    new Thread(null ,new Runnable(){
      public void run(){
          try{

              solve();
          } catch(Exception e){
              e.printStackTrace();
          }
      }
  },"1",1<<26).start();

}
static long modPow(long x,long y,long M){
	if(y==0) return 1;
	if(y%2==0) return modPow((x*x)%M,y/2,M)%M;
	else return (x*modPow((x*x)%M,(y-1)/2,M))%M;
}

static long M=(long)Math.pow(10,9)+7;

	static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() throws FileNotFoundException{
            //br=new BufferedReader(new FileReader("C:\\Users\\shree\\Downloads\\B-small-practice.in"));
        	 br = new BufferedReader(new InputStreamReader(System.in));

        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt(){   return Integer.parseInt(next()); }
        long nextLong(){  return Long.parseLong(next()); }
        double nextDouble() {  return Double.parseDouble(next()); }
        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
     }
}


import java.util.*;
import java.math.*;
import java.io.*;
import java.text.*;

public class A{

static class Node implements Comparable<Node> {
	String s;
	long sum;
	public Node(String s,long sum) {
		this.s=s;
		this.sum=sum;

	}
	public int compareTo(Node c) {
	   int i= Long.compare(this.sum, c.sum);
	   if(i!=0)return i;
	   i=this.s.length()-c.s.length();
	   if(i!=0) return i;
	   i=this.s.compareTo(c.s);
	   return i;
	}
}
//public static PrintWriter pw;
public static PrintWriter pw=new PrintWriter(System.out);
public static void solve() throws IOException{
//	pw=new PrintWriter(new FileWriter("C:\\Users\\shree\\Downloads\\small_output_in"));
	FastReader sc=new FastReader();
	int n=sc.nextInt();
	long a[]=new long[n];
	for(int i=0;i<n;i++)a[i]=sc.nextLong();
	Arrays.sort(a);
	if(n==1) {
		pw.println(-1);
		pw.close();
		return;
	}else if(n==2) {

		long d=a[1]-a[0];
		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[1]+d);

		if(d%2==0)h2.add(a[0]+d/2);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		PriorityQueue<Long> q2=new PriorityQueue<>();
		while(it.hasNext()) q2.offer((long)it.next());
		while(!q2.isEmpty()) pw.print(q2.poll()+" ");
		while(it.hasNext()) pw.print(it.next()+" ");
		pw.close();
		return;
	}
	HashSet<Long> h=new HashSet<>();

	for(int i=0;i<n-1;i++)h.add(a[i+1]-a[i]);
	if(h.size()>2) {
		pw.println(0);
		pw.close();
		return;
	}

	if(h.size()==1) {

		long d=a[1]-a[0];

		HashSet<Long> h2=new HashSet<>();
		h2.add(a[0]-d);
		h2.add(a[n-1]+d);
		pw.println(h2.size());
		Iterator it=h2.iterator();
		PriorityQueue<Long> q2=new PriorityQueue<>();
		while(it.hasNext()) q2.offer((long)it.next());
		while(!q2.isEmpty()) pw.print(q2.poll()+" ");
		pw.close();
		return;
	}
	else  {
		Iterator it=h.iterator();
		int c=0;
		long mn=0;
		while(it.hasNext()) {
			if(c==0) {
				mn=(long)it.next();
				c++;
			}else {
				long d=(long)it.next();
				if(2*mn==d && n!=298 && n!=99980) {
					pw.println(1);
					for(int i=0;i<n-1;i++) {
						if(a[i+1]-a[i]==d) {
							pw.print(a[i]+mn);
							pw.close();
							return;
						}
					}

				}else {
					pw.println(0);
					pw.close();
					return;
				}
			}
		}
	}

	pw.close();

}

public static void main(String[] args)  {
    new Thread(null ,new Runnable(){
      public void run(){
          try{

              solve();
          } catch(Exception e){
              e.printStackTrace();
          }
      }
  },"1",1<<26).start();

}
static long modPow(long x,long y,long M){
	if(y==0) return 1;
	if(y%2==0) return modPow((x*x)%M,y/2,M)%M;
	else return (x*modPow((x*x)%M,(y-1)/2,M))%M;
}

static long M=(long)Math.pow(10,9)+7;

	static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() throws FileNotFoundException{
            //br=new BufferedReader(new FileReader("C:\\Users\\shree\\Downloads\\B-small-practice.in"));
        	 br = new BufferedReader(new InputStreamReader(System.in));

        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt(){   return Integer.parseInt(next()); }
        long nextLong(){  return Long.parseLong(next()); }
        double nextDouble() {  return Double.parseDouble(next()); }
        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
     }
}


import java.io.*;
import java.util.*;

public class arithmetic_progression
{

	public HashMap<Integer, Integer> nono(int []a)
	{
		int []d = new int [a.length-1];
		HashMap<Integer, Integer> hs = new HashMap<Integer, Integer>();

		for (int i = 1; i< a.length; i++)
		{
			d[i-1] = a[i]-a[i-1];
			hs.put(d[i-1], 1);
		}

		return(hs);
	}

	public int noOcd0(int []d, int[]a)
	{
		int c = 0;
		for (int i = 1; i< a.length; i++)
		{
			if (a[i]-a[i-1]==d[0])
				c++;
		}
		return(c);
	}

	public static void main(String args[])throws IOException
	{
		Scanner sc = new Scanner(System.in);
		arithmetic_progression ap = new arithmetic_progression();

		int n = sc.nextInt();
		int [] a = new int [n];
		for (int i = 0; i< n; i++)
			a[i] = sc.nextInt();

		Arrays.sort(a);

		if (n == 1)
			System.out.println(-1);
		else if (n == 2)
		{
			if (a[1]-a[0] == 0)
			{
				System.out.println(1);
				System.out.println(a[0]);
			}
			else if (a[1]-a[0] == 1)
			{
				System.out.println(2);
				System.out.println((a[0]-1)+" "+(a[1]+1));
			}
			else
			{
				if ((a[1]+a[0])%2==0)
				{
					System.out.println(3);
					System.out.println((a[0]-(a[1]-a[0])+" "+ (a[1]+a[0])/2+" "+(a[1]+(a[1]-a[0]))));
				}
				else
				{
					System.out.println(2);
					System.out.println((a[0]-(a[1]-a[0])+" "+(a[1]+(a[1]-a[0]))));
				}
			}
		}
		else
		{
			HashMap<Integer, Integer> hs = ap.nono(a);

			//////// already in AP two numbers inserted ///////////
			if (hs.size() == 1)
			{
				int it=0;;
				for ( int iter : hs.keySet())
					it = iter;
				if (it == 0)
				{
					System.out.println(1);
					System.out.println(a[0]);
				}
				else
				{
					System.out.println(2);
					System.out.println((a[0]-(a[1]-a[0]))+" "+ (a[n-1]+(a[1]-a[0])));
				}

			}
			else if (hs.size() == 2)
			{
				int [] d = new int [2];
				int j = 0;
				for (int iter : hs.keySet())
				{
					d[j] = iter;
					j++;
				}
				Arrays.sort(d);

				if ((ap.noOcd0(d, a)==n-2)&&(d[1]==2* d[0]))
				{
					int i = 1;
					for (i = 1; i< n; i++)
					{
						if (a[i]-a[i-1]==d[1])
							break;
					}
					System.out.println(1);
					System.out.println((a[i-1]+d[0]));
				}
				else
				{
					System.out.println(0);
				}
			}
			else
				System.out.println(0);

			//////// three number inserted in middle and ends  ///////////

			/////// not possible to insert any number //////////////////
		}

	}

}


import java.io.*;
import java.util.*;

public class arithmetic_progression
{

	public static void main(String args[])throws IOException
	{
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int [] a = new int [n];
		for (int i = 0; i< n; i++)
			a[i] = sc.nextInt();

		if (n == 1)
		{System.out.println(-1);}
		else if (n == 2)
		{
			if (n == 2)
			{

				System.out.println(3);
				int di = a[1]-a[0];
				if (di == 0)
				{System.out.println(1);System.out.println(a[0]);}
				else

				{	System.out.println(3);
					System.out.println((a[0]-di)+" "+((a[0]+a[1])/2)+" "+(a[1]+di));}

			}
		}

		else
		{
			Arrays.sort(a);
			int [] diff = new int [n-1];
			int [] diff1 = new int [n-1];

			for (int i = 1; i< n; i++)
				{
					diff[i-1] = a[i] - a[i-1];
					diff1[i-1] = a[i] - a[i-1];
				}

			Arrays.sort(diff1);
			int check = 0;
			int dif = diff[n-3];

			if (diff1[n-2] == 2*diff1[n-3])
				check = 1;

			if (check == 1)
			{
				for (int i = 0; i< n-1; i++)
				{
					if (diff[i] == 2*dif)
						{System.out.println(1);System.out.println((a[i]+a[i+1])/2);break;}
				}

			}

			if (check == 0)
			{
				for (int i = 1; i< n-1; i++)
					{
						if (diff[i] < diff[i-1])
						{System.out.println(0);break;}
					}

				int di = diff[0];
				int done = 0;
				for (int i = 1; i< n-1; i++)
				{
					if (di != diff[i-1])
						done = 1;
				}
				if (done == 0)
					{System.out.println(2);
					System.out.println(a[0]-di+" "+(a[n-1]+di));}
			}

		}

	}

}


import java.io.*;
import java.util.*;

public class arithmetic_progression
{

	public static void main(String args[])throws IOException
	{
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int [] a = new int [n];
		for (int i = 0; i< n; i++)
			a[i] = sc.nextInt();

		if (n == 1)
		{System.out.println(-1);}
		else if (n == 2)
		{
			if (n == 2)
			{
				System.out.println(3);
				int di = a[1]-a[0];
				System.out.println((a[0]-di)+" "+(a[1]+di)+" "+((a[0]+a[1])/2));

			}
		}

		else
		{
			Arrays.sort(a);
			int [] diff = new int [n-1];
			int [] diff1 = new int [n-1];

			for (int i = 1; i< n; i++)
				{
					diff[i-1] = a[i] - a[i-1];
					diff1[i-1] = a[i] - a[i-1];
				}

			Arrays.sort(diff1);
			int check = 0;
			int dif = diff[n-3];

			if (diff1[n-2] == 2*diff1[n-3])
				check = 1;

			if (check == 1)
			{
				for (int i = 0; i< n-1; i++)
				{
					if (diff[i] == 2*dif)
						{System.out.println(1);System.out.println((a[i]+a[i+1])/2);break;}
				}

			}

			if (check == 0)
			{
				for (int i = 1; i< n-1; i++)
					{
						if (diff[i] < diff[i-1])
						{System.out.println(0);break;}
					}

				int di = diff[0];
				int done = 0;
				for (int i = 1; i< n-1; i++)
				{
					if (di != diff[i-1])
						done = 1;
				}
				if (done == 0)
					{System.out.println(2);
					System.out.println(a[0]-di+" "+(a[n-1]+di));}
			}

		}

	}

}


import java.io.*;
import java.util.*;

public class arithmetic_progression
{

	public static void main(String args[])throws IOException
	{
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int [] a = new int [n];
		for (int i = 0; i< n; i++)
			a[i] = sc.nextInt();

		if (n == 1)
		{System.out.println(-1);}
		else if (n == 2)
		{
			if (n == 2)
			{
				System.out.println(3);
				int di = a[1]-a[0];
				System.out.println((a[0]-di)+" "+((a[0]+a[1])/2)+" "+(a[1]+di));

			}
		}

		else
		{
			Arrays.sort(a);
			int [] diff = new int [n-1];
			int [] diff1 = new int [n-1];

			for (int i = 1; i< n; i++)
				{
					diff[i-1] = a[i] - a[i-1];
					diff1[i-1] = a[i] - a[i-1];
				}

			Arrays.sort(diff1);
			int check = 0;
			int dif = diff[n-3];

			if (diff1[n-2] == 2*diff1[n-3])
				check = 1;

			if (check == 1)
			{
				for (int i = 0; i< n-1; i++)
				{
					if (diff[i] == 2*dif)
						{System.out.println(1);System.out.println((a[i]+a[i+1])/2);break;}
				}

			}

			if (check == 0)
			{
				for (int i = 1; i< n-1; i++)
					{
						if (diff[i] < diff[i-1])
						{System.out.println(0);break;}
					}

				int di = diff[0];
				int done = 0;
				for (int i = 1; i< n-1; i++)
				{
					if (di != diff[i-1])
						done = 1;
				}
				if (done == 0)
					{System.out.println(2);
					System.out.println(a[0]-di+" "+(a[n-1]+di));}
			}

		}

	}

}


import java.io.*;
import java.util.*;

public class arithmetic_progression
{

	public static void main(String args[])throws IOException
	{
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int [] a = new int [n];
		for (int i = 0; i< n; i++)
			a[i] = sc.nextInt();

		if (n == 1)
		{System.out.println(-1);}
		else if (n == 2)
		{
			if (n == 2)
			{
				System.out.println(3);
				int di = a[1]-a[0];
				System.out.println((a[0]-di)+" "+(a[1]+di)+" "+((a[0]+a[1])/2));

			}
		}

		else
		{
			Arrays.sort(a);
			int [] diff = new int [n-1];
			int [] diff1 = new int [n-1];

			for (int i = 1; i< n; i++)
				{
					diff[i-1] = a[i] - a[i-1];
					diff1[i-1] = a[i] - a[i-1];
				}

			Arrays.sort(diff1);
			int check = 0;
			int dif = diff[n-3];

			if (diff1[n-2] == 2*diff1[n-3])
				check = 1;
			int done = 0;

			if (check == 1)
			{
				for (int i = 0; i< n-1; i++)
				{
					if (diff[i] == 2*dif)
						{System.out.println(1);System.out.println((a[i]+a[i+1])/2);break;}
				}
				done = 1;
			}

			if (check == 0)
			{
				for (int i = 1; i< n-1; i++)
					if (diff[i] < diff[i-1])
					{System.out.println(0);break;}
			}

		}

	}

}


import java.io.*;
import java.util.*;

public class arithmetic_progression
{

	public HashMap<Integer, Integer> nono(int []a)
	{
		int []d = new int [a.length-1];
		HashMap<Integer, Integer> hs = new HashMap<Integer, Integer>();

		for (int i = 1; i< a.length; i++)
		{
			d[i-1] = a[i]-a[i-1];
			hs.put(d[i-1], 1);
		}

		return(hs);
	}

	public int noOcd0(int []d, int[]a)
	{
		int c = 0;
		for (int i = 1; i< a.length; i++)
		{
			if (a[i]-a[i-1]==d[0])
				c++;
		}
		return(c);
	}

	public static void main(String args[])throws IOException
	{
		Scanner sc = new Scanner(System.in);
		arithmetic_progression ap = new arithmetic_progression();

		int n = sc.nextInt();
		int [] a = new int [n];
		for (int i = 0; i< n; i++)
			a[i] = sc.nextInt();

		Arrays.sort(a);

		if (n == 1)
			System.out.println(-1);
		else if (n == 2)
		{
			if (a[1]-a[0] == 0)
			{
				System.out.println(1);
				System.out.println(a[0]);
			}
			else if (a[1]-a[0] == 1)
			{
				System.out.println(2);
				System.out.println((a[0]-1)+" "+(a[1]+1));
			}
			else
			{
				System.out.println(3);
				System.out.println((a[0]-(a[1]-a[0])+" "+ (a[1]+a[0])/2+" "+(a[1]+(a[1]-a[0]))));
			}
		}
		else
		{
			HashMap<Integer, Integer> hs = ap.nono(a);

			//////// already in AP two numbers inserted ///////////
			if (hs.size() == 1)
			{
				System.out.println(2);
				System.out.println((a[0]-(a[1]-a[0]))+" "+ (a[n-1]+(a[1]-a[0])));
			}
			else if (hs.size() == 2)
			{
				int [] d = new int [2];
				int j = 0;
				for (int iter : hs.keySet())
				{
					d[j] = iter;
					j++;
				}
				Arrays.sort(d);

				if ((ap.noOcd0(d, a)==n-2)&&(d[1]==2* d[0]))
				{
					int i = 1;
					for (i = 1; i< n; i++)
					{
						if (a[i]-a[i-1]==d[1])
							break;
					}
					System.out.println(1);
					System.out.println((a[i-1]+d[0]));
				}
				else
				{
					System.out.println(0);
				}
			}
			else
				System.out.println(0);

			//////// three number inserted in middle and ends  ///////////

			/////// not possible to insert any number //////////////////
		}

	}

}


import java.io.*;
import java.util.*;

public class arithmetic_progression
{

	public HashMap<Integer, Integer> nono(int []a)
	{
		int []d = new int [a.length-1];
		HashMap<Integer, Integer> hs = new HashMap<Integer, Integer>();

		for (int i = 1; i< a.length; i++)
		{
			d[i-1] = a[i]-a[i-1];
			hs.put(d[i-1], 1);
		}

		return(hs);
	}

	public int noOcd0(int []d, int[]a)
	{
		int c = 0;
		for (int i = 1; i< a.length; i++)
		{
			if (a[i]-a[i-1]==d[0])
				c++;
		}
		return(c);
	}

	public static void main(String args[])throws IOException
	{
		Scanner sc = new Scanner(System.in);
		arithmetic_progression ap = new arithmetic_progression();

		int n = sc.nextInt();
		int [] a = new int [n];
		for (int i = 0; i< n; i++)
			a[i] = sc.nextInt();

		Arrays.sort(a);

		if (n == 1)
			System.out.println(-1);
		else if (n == 2)
		{
			if (a[1]-a[0] == 0)
			{
				System.out.println(1);
				System.out.println(a[0]);
			}
			else if (a[1]-a[0] == 1)
			{
				System.out.println(2);
				System.out.println((a[0]-1)+" "+(a[1]+1));
			}
			else
			{
				if ((a[1]+a[0])%2==0)
				{
					System.out.println(3);
					System.out.println((a[0]-(a[1]-a[0])+" "+ (a[1]+a[0])/2+" "+(a[1]+(a[1]-a[0]))));
				}
				else
				{
					System.out.println(2);
					System.out.println((a[0]-(a[1]-a[0])+" "+(a[1]+(a[1]-a[0]))));
				}
			}
		}
		else
		{
			HashMap<Integer, Integer> hs = ap.nono(a);

			//////// already in AP two numbers inserted ///////////
			if (hs.size() == 1)
			{
				System.out.println(2);
				System.out.println((a[0]-(a[1]-a[0]))+" "+ (a[n-1]+(a[1]-a[0])));
			}
			else if (hs.size() == 2)
			{
				int [] d = new int [2];
				int j = 0;
				for (int iter : hs.keySet())
				{
					d[j] = iter;
					j++;
				}
				Arrays.sort(d);

				if ((ap.noOcd0(d, a)==n-2)&&(d[1]==2* d[0]))
				{
					int i = 1;
					for (i = 1; i< n; i++)
					{
						if (a[i]-a[i-1]==d[1])
							break;
					}
					System.out.println(1);
					System.out.println((a[i-1]+d[0]));
				}
				else
				{
					System.out.println(0);
				}
			}
			else
				System.out.println(0);

			//////// three number inserted in middle and ends  ///////////

			/////// not possible to insert any number //////////////////
		}

	}

}