// 打表法
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        ArrayList<Integer> arrayList = new ArrayList<>();
        int number = Integer.valueOf(scan.nextLine().trim());
        while (number != 0) {
            arrayList.add(number);
            number = Integer.valueOf(scan.nextLine().trim());
        }
        int[] ans = new int[arrayList.size()]; // 定义一个整型数组,用于存放最终的输出结果
        int index = 0; // 定义一个整型变量,用于存放当前的下标
        for (int n : arrayList) {
            ans[index++] = n / 2;
            // ans[index++] = process(n);
        }
        for (int num : ans) {
            System.out.println(num);
        }
    }
    // 以下方法是最原始的解题方法。当我们使用以下方法解出该题后,可以通过观察结果,找到规律
    public static int process(int n) {
        if (0 == n || 1 == n) { // 如果初始的空瓶子数为 0 或者为 1,那么别想了,你喝不到任何一瓶可乐
            return 0;
        }
        int ans = 0; // 定义一个整型变量,用于存放最终能够喝到多少瓶可乐
        int sendBack; // 定义一个整型变量,用于存放需要返还多少个可乐瓶
        if (n % 3 == 0) { // 如果当前拥有的空瓶子数被 3 整除,那么我们不需要向商店老板借任何一个空瓶子
            sendBack = 0;
        } else { // 否则,我们需要向商店老板借空瓶子
            sendBack = 3 - (n % 3);
        }
        while ((n + sendBack) / 3 >= sendBack) { // 如果我向老板借 sendBack 个空的可乐瓶,然后我能兑换的可乐数的瓶数大于需要还给老板的瓶子数 sendBack
            ans += (n + sendBack) / 3; // 我可以喝到这么多瓶可乐
            n = ((n + sendBack) / 3) - sendBack; // 最终产生的空瓶子数应该要减去我们向老板借的空瓶子数
            if (0 == n || 1 == n) { // 如果此时空瓶子数为 0 或者 1,退出循环
                break;
            }
            if (n % 3 == 0) {
                sendBack = 0;
            } else {
                sendBack = 3 - (n % 3);
            }
        }
        return ans;
    }
}