← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	if _, err := fmt.Fscan(in, &t); err != nil {
		return
	}

	for i := 0; i < t; i++ {
		var s, c string
		fmt.Fscan(in, &s, &c)

		b := []byte(s)
		n := len(b)

		minIndices := make([]int, n)
		if n > 0 {
			minIdx := n - 1
			for j := n - 1; j >= 0; j-- {
				if b[j] < b[minIdx] {
					minIdx = j
				}
				minIndices[j] = minIdx
			}
		}

		for j := 0; j < n-1; j++ {
			target := minIndices[j+1]
			if b[target] < b[j] {
				b[j], b[target] = b[target], b[j]
				break
			}
		}

		res := string(b)
		if res < c {
			fmt.Fprintln(out, res)
		} else {
			fmt.Fprintln(out, "---")
		}
	}
}
```