import java.util.Scanner;
import java.util.LinkedList;
import java.util.Collections;
import java.util.ArrayList;
import java.util.*;

public class EJoe
{

	public static void main(String args[])
	{
		new EJoe();
	}
	public EJoe()
	{
		Scanner scan = new Scanner(System.in);
		while(true)
		{
			MState m=new MState(scan);
			System.out.println(m.toString());
			if (m.toString().equals("   0   0   0"))
			{
				System.out.println("============");
				return;
			}
			MState a=(MState)new AStar().search(m);
			if (a!=null)
			{
				for(String s : a.hops)
				{
					System.out.println(s);
				}
			}
			System.out.println("============");

		}


	}

}


class MState extends AState
{	
	LinkedList<String> hops;
	int baskets[];

	public MState(Scanner s)
	{
		hops=new LinkedList<String>();
		baskets=new int[3];
		for(int i=0; i<3; i++)
		{
			baskets[i] = s.nextInt();
		}

	}
	public MState(MState parent)
	{
		baskets=new int[3];
		for(int i=0; i<3; i++)
		{
			baskets[i]=parent.baskets[i];
		}
		hops=new LinkedList<String>();
		hops.addAll(parent.hops);
	}

	double getCost()
	{
		return hops.size();
	}

	public String toString()
	{
		return getStr(0) + getStr(1) + getStr(2);
	}
	String getStr(int i)
	{
		String s="" + baskets[i];
		while(s.length() < 4)
		{
			s=" " + s;
		}
		return s;
	}

	public ArrayList<Integer> getVal()
	{
		ArrayList<Integer> l=new ArrayList<Integer>();
		l.add(baskets[0]);
		l.add(baskets[1]);
		l.add(baskets[2]);

		Collections.sort(l);
		return l;

	}

	public int compareTo(AState o)
	{

		MState m =(MState)o;

		return getVal().toString().compareTo(m.getVal().toString());
	}


	boolean isGoal()
	{
		if (baskets[0] == baskets[1])
		if (baskets[1] == baskets[2])
		{
			return true;
		}
		return false;
	}

	void getNext(LinkedList<AState> q)
	{
		int z = baskets[0] + baskets[1] + baskets[2];
		if (z % 3 !=0) return;

		for(int i=0; i<3; i++)
		for(int j=0; j<3; j++)
		{
			if (i!=j)
			{
				if (baskets[i] >= baskets[j])
				{
					MState m=new MState(this);
					m.baskets[i] -= baskets[j];
					m.baskets[j] += baskets[j];
					m.hops.add(m.toString());
					q.add(m);
				}
			}
		}

	}
	

}



