The Queen of England has n trees growing in a row in her garden. At that, the i-th (1 ≤ i ≤ n) tree from the left has height ai meters. Today the Queen decided to update the scenery of her garden. She wants the trees' heights to meet the condition: for all i (1 ≤ i < n), ai + 1 - ai = k, where k is the number the Queen chose.

Unfortunately, the royal gardener is not a machine and he cannot fulfill the desire of the Queen instantly! In one minute, the gardener can either decrease the height of a tree to any positive integer height or increase the height of a tree to any positive integer height. How should the royal gardener act to fulfill a whim of Her Majesty in the minimum number of minutes?

Input

The first line contains two space-separated integers: n, k (1 ≤ n, k ≤ 1000). The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 1000) — the heights of the trees in the row. 

Output

In the first line print a single integer p — the minimum number of minutes the gardener needs. In the next p lines print the description of his actions. 

If the gardener needs to increase the height of the j-th (1 ≤ j ≤ n) tree from the left by x (x ≥ 1) meters, then print in the corresponding line "+ j x". If the gardener needs to decrease the height of the j-th (1 ≤ j ≤ n) tree from the left by x (x ≥ 1) meters, print on the corresponding line "- j x".

If there are multiple ways to make a row of trees beautiful in the minimum number of actions, you are allowed to print any of them.

Examples

Input

4 1
1 2 1 5


Output

2
+ 3 2
- 4 1


Input

4 1
1 2 3 4


Output

0
# In[11]:

def find(n, k, l):
    if n==1: return 0, []
    chunks = []
    start = 0
    for i in range(1,n):
        if l[i]-l[i-1] != k: # end run
            chunks.append((start, i))
            start = i
    chunks += [(start,i)]
    minchange = n
    actions = []
    for ci, cj in chunks:
        #print "trying chunk", [l[i] for i in range(ci,cj)]
        if l[ci] <= ci*k: 
            #print "skipping chunk", [l[i] for i in range(ci,cj)]
            continue
        c = 0
        i, r = cj, 1
        a = []
        while i < n:
            d = l[cj-1] + r*k - l[i]
            if d: 
                c += 1
                a.append((i+1,d))
                #print "misfit>", l[i]
            i += 1
            r += 1
        i, r = ci-1, 1
        while i >= 0:
            d = l[ci] - r*k - l[i]
            if d:
                c += 1
                a.append((i+1,d))
                #print "misfit<", l[i]
            i -= 1
            r += 1
        if c < minchange:
            minchange = c
            actions = a
    return minchange, actions


# In[7]:

n, k = map(int, raw_input().strip().split())
l = map(int, raw_input().strip().split())
change, actions = find(n,k,l)
print change
for j, x in actions:
    print "+" if x > 0 else "-", j, abs(x)