import java.io.*;
 
// Problem Description: 
// In an array, all numbers appear three times except one which only
// appears once. Please find the unique number.
 
class Ideone
{
	public static int FindNumberAppearingOnce(int[] numbers) {
		int[] bitSum = new int[32];
		for(int i = 0; i < 32; ++i) {
			bitSum[i] = 0;
		}
 
		for(int i = 0; i < numbers.length; ++i) {
			int bitMask = 1;
			for(int j = 31; j >= 0; --j) {
				int bit = numbers[i] & bitMask;
				if(bit != 0) {
					bitSum[j] += 1;
				}
 
				bitMask = bitMask << 1;
			}
		}
 
		int result = 0;
		for(int i = 0; i < 32; ++i) {
			result = result << 1;
			result += bitSum[i] % 3;
		}
 
		return result;
	}
 
	//////////////////////////////////////////////////////////////
	// Test Code Begins:
	//////////////////////////////////////////////////////////////
	private static void test
(String testName, 
int[] numbers, 
int expected
) { 		int result = FindNumberAppearingOnce(numbers);
		if(result == expected) {
			System.
out.
println(testName 
+ " passed."); 		}
		else {
			System.
out.
println(testName 
+ " FAILED."); 		}
	}
 
	private static void test1() {
		int[] numbers = {1, 1, 2, 2, 2, 1, 3};
		int expected = 3;
		test("Test1", numbers, expected);
	}
 
	private static void test2() {
		int[] numbers = {4, 3, 3, 2, 2, 2, 3};
		int expected = 4;
		test("Test2", numbers, expected);
	}
 
	private static void test3() {
		int[] numbers = {4, 4, 1, 1, 1, 7, 4};
		int expected = 7;
		test("Test3", numbers, expected);
	}
 
	private static void test4() {
		int[] numbers = {-10, 214, 214, 214};
		int expected = -10;
		test("Test4", numbers, expected);
	}
 
	private static void test5() {
		int[] numbers = {-209, 3467, -209, -209};
		int expected = 3467;
		test("Test5", numbers, expected);
	}
 
	private static void test6() {
		int[] numbers = {1024, -1025, 1024, -1025, 1024, -1025, 1023};
		int expected = 1023;
		test("Test6", numbers, expected);
	}
 
	private static void test7() {
		int[] numbers = {-1024, -1024, -1024, -1023};
		int expected = -1023;
		test("Test7", numbers, expected);
	}
 
	public static void main 
(String[] args
) { 		test1();
		test2();
		test3();
		test4();
		test5();
		test6();
		test7();
	}
}
				aW1wb3J0IGphdmEuaW8uKjsKCi8vIFByb2JsZW0gRGVzY3JpcHRpb246IAovLyBJbiBhbiBhcnJheSwgYWxsIG51bWJlcnMgYXBwZWFyIHRocmVlIHRpbWVzIGV4Y2VwdCBvbmUgd2hpY2ggb25seQovLyBhcHBlYXJzIG9uY2UuIFBsZWFzZSBmaW5kIHRoZSB1bmlxdWUgbnVtYmVyLgoKY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgaW50IEZpbmROdW1iZXJBcHBlYXJpbmdPbmNlKGludFtdIG51bWJlcnMpIHsKCQlpbnRbXSBiaXRTdW0gPSBuZXcgaW50WzMyXTsKCQlmb3IoaW50IGkgPSAwOyBpIDwgMzI7ICsraSkgewoJCQliaXRTdW1baV0gPSAwOwoJCX0KCQkKCQlmb3IoaW50IGkgPSAwOyBpIDwgbnVtYmVycy5sZW5ndGg7ICsraSkgewoJCQlpbnQgYml0TWFzayA9IDE7CgkJCWZvcihpbnQgaiA9IDMxOyBqID49IDA7IC0taikgewoJCQkJaW50IGJpdCA9IG51bWJlcnNbaV0gJiBiaXRNYXNrOwoJCQkJaWYoYml0ICE9IDApIHsKCQkJCQliaXRTdW1bal0gKz0gMTsKCQkJCX0KCQkJCQoJCQkJYml0TWFzayA9IGJpdE1hc2sgPDwgMTsKCQkJfQoJCX0KCQkKCQlpbnQgcmVzdWx0ID0gMDsKCQlmb3IoaW50IGkgPSAwOyBpIDwgMzI7ICsraSkgewoJCQlyZXN1bHQgPSByZXN1bHQgPDwgMTsKCQkJcmVzdWx0ICs9IGJpdFN1bVtpXSAlIDM7CgkJfQoJCQoJCXJldHVybiByZXN1bHQ7Cgl9CgkKCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgkvLyBUZXN0IENvZGUgQmVnaW5zOgoJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCXByaXZhdGUgc3RhdGljIHZvaWQgdGVzdChTdHJpbmcgdGVzdE5hbWUsIGludFtdIG51bWJlcnMsIGludCBleHBlY3RlZCkgewoJCWludCByZXN1bHQgPSBGaW5kTnVtYmVyQXBwZWFyaW5nT25jZShudW1iZXJzKTsKCQlpZihyZXN1bHQgPT0gZXhwZWN0ZWQpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKHRlc3ROYW1lICsgIiBwYXNzZWQuIik7CgkJfQoJCWVsc2UgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4odGVzdE5hbWUgKyAiIEZBSUxFRC4iKTsKCQl9Cgl9CgkKCXByaXZhdGUgc3RhdGljIHZvaWQgdGVzdDEoKSB7CgkJaW50W10gbnVtYmVycyA9IHsxLCAxLCAyLCAyLCAyLCAxLCAzfTsKCQlpbnQgZXhwZWN0ZWQgPSAzOwoJCXRlc3QoIlRlc3QxIiwgbnVtYmVycywgZXhwZWN0ZWQpOwoJfQoJCglwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3QyKCkgewoJCWludFtdIG51bWJlcnMgPSB7NCwgMywgMywgMiwgMiwgMiwgM307CgkJaW50IGV4cGVjdGVkID0gNDsKCQl0ZXN0KCJUZXN0MiIsIG51bWJlcnMsIGV4cGVjdGVkKTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0MygpIHsKCQlpbnRbXSBudW1iZXJzID0gezQsIDQsIDEsIDEsIDEsIDcsIDR9OwoJCWludCBleHBlY3RlZCA9IDc7CgkJdGVzdCgiVGVzdDMiLCBudW1iZXJzLCBleHBlY3RlZCk7Cgl9CgkKCXByaXZhdGUgc3RhdGljIHZvaWQgdGVzdDQoKSB7CgkJaW50W10gbnVtYmVycyA9IHstMTAsIDIxNCwgMjE0LCAyMTR9OwoJCWludCBleHBlY3RlZCA9IC0xMDsKCQl0ZXN0KCJUZXN0NCIsIG51bWJlcnMsIGV4cGVjdGVkKTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0NSgpIHsKCQlpbnRbXSBudW1iZXJzID0gey0yMDksIDM0NjcsIC0yMDksIC0yMDl9OwoJCWludCBleHBlY3RlZCA9IDM0Njc7CgkJdGVzdCgiVGVzdDUiLCBudW1iZXJzLCBleHBlY3RlZCk7Cgl9CgkKCXByaXZhdGUgc3RhdGljIHZvaWQgdGVzdDYoKSB7CgkJaW50W10gbnVtYmVycyA9IHsxMDI0LCAtMTAyNSwgMTAyNCwgLTEwMjUsIDEwMjQsIC0xMDI1LCAxMDIzfTsKCQlpbnQgZXhwZWN0ZWQgPSAxMDIzOwoJCXRlc3QoIlRlc3Q2IiwgbnVtYmVycywgZXhwZWN0ZWQpOwoJfQoJCglwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3Q3KCkgewoJCWludFtdIG51bWJlcnMgPSB7LTEwMjQsIC0xMDI0LCAtMTAyNCwgLTEwMjN9OwoJCWludCBleHBlY3RlZCA9IC0xMDIzOwoJCXRlc3QoIlRlc3Q3IiwgbnVtYmVycywgZXhwZWN0ZWQpOwoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgewoJCXRlc3QxKCk7CgkJdGVzdDIoKTsKCQl0ZXN0MygpOwoJCXRlc3Q0KCk7CgkJdGVzdDUoKTsKCQl0ZXN0NigpOwoJCXRlc3Q3KCk7Cgl9Cn0=