description: It is a simplified version of problem F2. The difference between them is the constraints (F1: k ≤ 2, F2: k ≤ 10).
  
  You are given an integer n. Find the minimum integer x such that x ≥ n and the number x is k-beautiful.
  
  A number is called k-beautiful if its decimal representation having no leading zeroes contains no more than k different digits. E.g. if k = 2, the numbers 3434443, 55550, 777 and 21 are k-beautiful whereas the numbers 120, 445435 and 998244353 are not.
  
  Input
  
  The first line contains one integer t (1 ≤ t ≤ 10^4) — the number of test cases. Then t test cases follow.
  
  Each test case consists of one line containing two integers n and k (1 ≤ n ≤ 10^9, 1 ≤ k ≤ 2).
  
  Output
  
  For each test case output on a separate line x — the minimum k-beautiful integer such that x ≥ n.
  
  Example
  
  Input
  
  
  4
  1 1
  221 2
  177890 2
  998244353 1
  
  
  Output
  
  
  1
  221
  181111
  999999999
solution: """
  // Author : snape_here - Susanta Mukherjee
       
   """
  
  from __future__ import division, print_function
   
  import os,sys
  from io import BytesIO, IOBase
   
  if sys.version_info[0] < 3:
      from __builtin__ import xrange as range
      from future_builtins import ascii, filter, hex, map, oct, zip
   
  def ii(): return int(input())
  def fi(): return float(input())
  def si(): return input()
  def msi(): return map(str,input().split())
  def mi(): return map(int,input().split())
  def li(): return list(mi())
  def lsi(): return list(msi())
   
  def read():
      sys.stdin = open('input.txt', 'r')  
      sys.stdout = open('output.txt', 'w') 
   
  def gcd(x, y):
      while y:
          x, y = y, x % y
      return x
  
  def lcm(x, y):
      return (x*y)//(gcd(x,y))
  
  mod=1000000007
  
  def modInverse(b,m): 
      g = gcd(b, m)  
      if (g != 1):         
          return -1
      else:          
          return pow(b, m - 2, m) 
  
  def ceil2(x,y):
      if x%y==0:
          return x//y
      else:
          return x//y+1
  
  def modu(a,b,m): 
  
      a = a % m 
      inv = modInverse(b,m) 
      if(inv == -1): 
          return -999999999
      else: 
          return (inv*a)%m
  
  from math import log,factorial,cos,tan,sin,radians,floor,sqrt,ceil
  
  import bisect
  import random
  import string 
  import itertools
  
  from decimal import *
  
  getcontext().prec = 50
  
  abc="abcdefghijklmnopqrstuvwxyz"
  
  pi=3.141592653589793238
  
  def gcd1(a):
      if len(a) == 1:
          return a[0]
      ans = a[0]
      for i in range(1,len(a)):
          ans = gcd(ans,a[i])
      return ans
  
  def mykey(x):
      return len(x)
  
  def check(y,n,k):
      ln = len(set(y))
      if int(y)>=n and ln<=k:
          return True 
      return False
  
  st = set()
  
  #taken from GFG:- https://www.geeksforgeeks.org/print-all-numbers-less-than-n-with-at-most-2-unique-digits/
  # Function to generate all possible numbers
  def generateNumbers(n, num, a, b):
       
      # If the number is less than n
      if (num > 0 and num < n):
          st.add(num)
   
      # If the number exceeds
      if (num >= n):
          return
   
      # Check if it is not the same number
      if (num * 10 + a > num):
          generateNumbers(n, num * 10 + a, a, b)
   
      generateNumbers(n, num * 10 + b, a, b)
   
  # Function to print all numbers
  def printNumbers(n):
       
      # All combination of digits
      for i in range(10):
          for j in range(i + 1, 10, 1):
              generateNumbers(n, 0, i, j)
  
      # Print all numbers
      l = list(st)
      l.sort()
      return l
  
  def main():
  
      lis=printNumbers(10**9)
  
      for _ in range(ii()):
          n,k=mi()
          if check(str(n),n,k):
              print(n)
              continue
          x=str(n)
          l=len(x)
          ans=""
          if k==1:
              c=x[0]
              f=1
              while f:
                  y=c*l
                  if check(y,n,k):
                      ans=y
                      f = 0
                  t = int(c)
                  t += 1
                  if t==10:
                      t=1 
                      l-=1
                  c = str(t)
          else:
              ind = bisect.bisect(lis,n)
              ans = lis[ind]
          print(ans)
  
  
  # region fastio
  
  # template taken from https://github.com/cheran-senthil/PyRival/blob/master/templates/template.py
  
  BUFSIZE = 8192
   
  
  class FastIO(IOBase):
      newlines = 0
   
      def __init__(self, file):
          self._fd = file.fileno()
          self.buffer = BytesIO()
          self.writable = "x" in file.mode or "r" not in file.mode
          self.write = self.buffer.write if self.writable else None
   
      def read(self):
          while True:
              b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
              if not b:
                  break
              ptr = self.buffer.tell()
              self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
          self.newlines = 0
          return self.buffer.read()
   
      def readline(self):
          while self.newlines == 0:
              b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
              self.newlines = b.count(b"\n") + (not b)
              ptr = self.buffer.tell()
              self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
          self.newlines -= 1
          return self.buffer.readline()
   
      def flush(self):
          if self.writable:
              os.write(self._fd, self.buffer.getvalue())
              self.buffer.truncate(0), self.buffer.seek(0)
   
   
  class IOWrapper(IOBase):
      def __init__(self, file):
          self.buffer = FastIO(file)
          self.flush = self.buffer.flush
          self.writable = self.buffer.writable
          self.write = lambda s: self.buffer.write(s.encode("ascii"))
          self.read = lambda: self.buffer.read().decode("ascii")
          self.readline = lambda: self.buffer.readline().decode("ascii")
   
   
  def print(*args, **kwargs):
      """Prints the values to a stream, or to sys.stdout by default."""
      sep, file = kwargs.pop("sep", " "), kwargs.pop("file", sys.stdout)
      at_start = True
      for x in args:
          if not at_start:
              file.write(sep)
          file.write(str(x))
          at_start = False
      file.write(kwargs.pop("end", "\n"))
      if kwargs.pop("flush", False):
          file.flush()
   
   
  if sys.version_info[0] < 3:
      sys.stdin, sys.stdout = FastIO(sys.stdin), FastIO(sys.stdout)
  else:
      sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
   
  input = lambda: sys.stdin.readline().rstrip("\r\n")
   
  # endregion
  
   
  if __name__ == "__main__":
      #read()
      main()