using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static int max = 0;
static int r = 0;
static List<string> zhishuStr = new List<string>();
static List<int> getzhishu(int num)
{
List<int> zhishu = new List<int>();
for (int i = 2; i < num; i++)
{
if (isNumber(i)&&num-i>=i)
{
zhishu.Add(i);
}
}
return zhishu;
}
static bool isNumber(int num)
{
bool flag = true;
for (int i = 2; i < num; i++)
{
if (num % i == 0)
{
flag = false;
}
}
return flag;
}
static void Main(string[] args)
{
string s = Console.ReadLine();
int num;
if (int.TryParse(s, out num))
{
max = num;
getzhishu(num);
foreach (string str in play(num,2))
{
Console.WriteLine(str);
}
}
Console.Read();
}
//p代表最小的加数,q代表上一次的
static List<string> play(int num,int min)
{
List<int> zhishu = new List<int>();
List<string> str = new List<string>();
zhishu = getzhishu(num);
foreach(int n in zhishu)
{
int m = num -n;
if (isNumber(m)&&m>=min&&n>=min)
{
str.Add(m.ToString() +"+"+ n.ToString());
}
if (n < min)
{
continue;
}
foreach (string s in play(m,n))
{
str.Add(s +"+"+ n);
}
}
return str;
}
}
}