using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
//using System.Diagnostics;
//using System.Linq;

class inputFile
{
	//変数
	bool b_testMode;
	List<string> list_s_line;
	int i_index;

	//コンストラクタ
	public inputFile()
	{
		//変数初期化
		b_testMode = false;
		list_s_line = new List<string>();
		i_index = 0;

		//ファイル読み込み
		read_file();
	}

	//ファイル読み込み
	void read_file()
	{
		//テストモードの場合のみ
		if (b_testMode == true)
		{
			// StreamReader の新しいインスタンスを生成する
			System.IO.StreamReader cReader =
				new System.IO.StreamReader
				(@"D:\Data\VisualStudio-workspace\paiza\inputFile.txt", Encoding.Default);

			// 読み込みできる文字がなくなるまで繰り返す
			while (cReader.Peek() >= 0)
			{
				// ファイルを 1 行ずつ読み込む
				string s_temp = cReader.ReadLine();
				// 読み込んだものを追加で格納する
				list_s_line.Add(s_temp);
			}

			// cReader を閉じる (正しくは オブジェクトの破棄を保証する を参照)
			cReader.Close();
		}
	}

	//1行ずつ取得
	public string get()
	{
		//テストモードの場合
		if (b_testMode == true)
		{
			if (i_index >= list_s_line.Count)
			{
				return "";
			}

			return list_s_line[i_index++];
		}
		//本番モードの場合
		else
		{
			string s_temp = Console.ReadLine();
			if(s_temp == null || s_temp == "")
			{
				return "";
			}
			else
			{
				return s_temp;
			}
		}
	}
}

static class DeepCopyUtils
{
	public static object DeepCopy(this object target)
	{

		object result;
		BinaryFormatter b = new BinaryFormatter();

		MemoryStream mem = new MemoryStream();

		try
		{
			b.Serialize(mem, target);
			mem.Position = 0;
			result = b.Deserialize(mem);
		}
		finally
		{
			mem.Close();
		}

		return result;

	}
}

class Program
{
	//クラス変数
	static inputFile input;
	static Param PRM;

	//Main
	static void Main(string[] args)
	{
		//ファイル読み込み
		input = new inputFile();

		//データ作成
		PRM = new Param();

		//実行
		PRM.exec();
	}

	//データ作成
	[Serializable]
	class Param
	{
		//==================================================
		string cl_s_input;
		List<string> cl_list_s_editor;
		//==================================================
		public Param()
		{
			//string[] a_s = input.get().Split(' ');
			//string s_result = string.Join(" ", cl_list_i_num);
			//==================================================
			//入力
			//入力は以下の形式で標準入力から与えられる。
			cl_s_input = input.get();

			cl_list_s_editor = new List<string>();
			//==================================================
		}
		public void exec()
		{
			//==================================================
			char[] a_c = cl_s_input.ToCharArray();
			foreach(char in_c in a_c)
			{
				//文字入力
				key_input(in_c.ToString());
			}

			/*出力
			最終的にエディタに表示されている文字列を出力せよ。
			（「制約」セクションで述べたように、この文字列が空になるような入力は与えられない）*/
			output();
			//==================================================
		}
		//==================================================
		//出力
		void output()
		{
			string s_result = "";
			foreach(string in_s in cl_list_s_editor)
			{
				s_result += in_s;
			}
			Console.WriteLine(s_result);
		}
		//文字入力
		void key_input(string in_s)
		{
			switch (in_s)
			{
				//0 キー: 文字列の右端に文字 0 が挿入される。
				case "0":
				//1 キー: 文字列の右端に文字 1 が挿入される。
				case "1":
					cl_list_s_editor.Add(in_s);
					break;
				//バックスペースキー: 文字列が空なら、何も起こらない。
				//そうでなければ、文字列の右端の 1 文字が削除される。
				case "B":
					if(cl_list_s_editor.Count >= 1)
					{
						cl_list_s_editor.RemoveAt(cl_list_s_editor.Count - 1);
					}
					break;
				default:
					break;
			}
		}
		//==================================================
	}
}


Measured memory_bytes: 2776