using System;
class Simran {
public static int countWays(int n)
{
if(n==1 || n==0)
return 1;
else if(n==2)
return 2;
else
return countWays(n-3) +countWays(n-2)+ countWays(n-1) ;
}
static void getSequence(int[] arr, int n, int i)
{
int high = 3;
if (n == 0) {
printSequence(arr, i);
}
else if (n > 0) {
for (int k = 1; k <= high; k++) {
arr[i] = k;
getSequence(arr, n - k, i + 1);
}
}
}
static void printSequence(int[] arr, int x)
{
bool valid=true;
for(int i=0;i<x;i++)
{
if( (arr[i]==2 && arr[i+1]==2 && arr[i+2]==2) || (arr[i]==3 && arr[i+2]==3))
valid=false;
}
if(valid)
{
for (int i = 0; i < x; i++)
Console.Write(arr[i] + " ");
Console.WriteLine();
}
}
public static void Main()
{
int n = 5;
int size = 100;
int[] arr = new int[size];
Console.WriteLine("Different compositions formed"
+ " by 1, 2 and 3 of " + n + " are");
getSequence(arr, n, 0);
}
}
dXNpbmcgU3lzdGVtOyAKCmNsYXNzIFNpbXJhbiB7IApwdWJsaWMgc3RhdGljIGludCBjb3VudFdheXMoaW50IG4pIAp7CmlmKG49PTEgfHwgbj09MCkgCnJldHVybiAxOwplbHNlIGlmKG49PTIpIApyZXR1cm4gMjsKZWxzZQpyZXR1cm4gY291bnRXYXlzKG4tMykgK2NvdW50V2F5cyhuLTIpKyBjb3VudFdheXMobi0xKSA7Cn0gCnN0YXRpYyB2b2lkIGdldFNlcXVlbmNlKGludFtdIGFyciwgaW50IG4sIGludCBpKSAKeyAKaW50IGhpZ2ggPSAzOyAKaWYgKG4gPT0gMCkgeyAKcHJpbnRTZXF1ZW5jZShhcnIsIGkpOyAKfSAKZWxzZSBpZiAobiA+IDApIHsgCmZvciAoaW50IGsgPSAxOyBrIDw9IGhpZ2g7IGsrKykgeyAKYXJyW2ldID0gazsgCmdldFNlcXVlbmNlKGFyciwgbiAtIGssIGkgKyAxKTsgCn0gCn0gCn0gCgpzdGF0aWMgdm9pZCBwcmludFNlcXVlbmNlKGludFtdIGFyciwgaW50IHgpIAp7IApib29sIHZhbGlkPXRydWU7CmZvcihpbnQgaT0wO2k8eDtpKyspIAp7CmlmKCAoYXJyW2ldPT0yICYmIGFycltpKzFdPT0yICYmIGFycltpKzJdPT0yKSB8fCAoYXJyW2ldPT0zICYmIGFycltpKzJdPT0zKSkgCnZhbGlkPWZhbHNlOwp9IAppZih2YWxpZCkgCnsKZm9yIChpbnQgaSA9IDA7IGkgPCB4OyBpKyspIApDb25zb2xlLldyaXRlKGFycltpXSArICIgIik7IApDb25zb2xlLldyaXRlTGluZSgpOwp9IAp9IAoKCnB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgCnsgCmludCBuID0gNTsgCmludCBzaXplID0gMTAwOyAKaW50W10gYXJyID0gbmV3IGludFtzaXplXTsgCgpDb25zb2xlLldyaXRlTGluZSgiRGlmZmVyZW50IGNvbXBvc2l0aW9ucyBmb3JtZWQiCisgIiBieSAxLCAyIGFuZCAzIG9mICIgKyBuICsgIiBhcmUiKTsgCmdldFNlcXVlbmNlKGFyciwgbiwgMCk7IAp9IAp9