Triangulo de Pascal, duvida em uma impressão de coluna?

Estou com um problema com o triangulo de pascal, eu consegui fazer ele completo, imprimindo certinho e tal, mas minha professora me passou umas opções que o usuário deve ter, e em uma delas é

b) ler um valor qualquer VAL e, caso ele exista no triângulo, mostre a coluna que o gerou.
Por exemplo: Val = 35, tem duas possibilidades, pois existem 2 valores 35 no triângulo:

Você deverá mostrar uma delas:

  • Coluna 2: 1+3+6+10+15
  • Ou Coluna 3: 1+4+10+20"

Que deve ser utilizado esses números:

Minha dúvida é, como eu faço pra voltar essas casas e ir imprimindo até chegar no 1, até se fosse com outro número, e se vai imprimir todas as vezes certinho, devo criar outra matriz? vetor?
tentei com algo assim, que na verdade acho que não tem sentido algum,
"if(a ==‘B’)

do
{
	System.out.println("Digite o valor que deseja procurar no triângulo, valor deve ser maior que 1!");
	val = read.nextInt();
} while(val == 1);


for (i=0;i<n;i++)
{
	for(j=0;j<=i;j++)
	{
		if(i==j || j == 0)
			ma[i][j] = 1;
		else 
		{
			ma [i][j] = ma [i-1][j-1]+ ma[i-1][j];
			
			if (val == ma[i][j])
			{
				for(i=i-1;i==j;i--)
					System.out.printf("[%02d]",ma[i][j]);
				    System.out.println();
				
			}

Posta o código completo das suas classes.